pythonxml解析器:文档元素之后的垃圾

2024-03-29 07:12:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我在工作中学习Python。我有一个大型XML文件,其数据类似于:

testData3.xml文件

<r><c>something1</c><c>something1</c><c>something1</c><c>something1</c><c>something1</c><c>something1</c><c>something1</c><c>something1</c><c></c><c></c><c>something1</c><c>something1</c></r>
<r><c>something2</c><c>something2</c><c>something2</c><c>something2</c><c>something2</c><c>something2</c><c>something2</c><c>something2</c><c></c><c></c><c>something2</c><c>something2</c></r>

我从我的一本Python书籍中复制了一个XML解析器,它在数据文件只包含一行时收集数据。只要我添加第二行数据,脚本在运行时就会失败。在

我正在运行的Python脚本(xmlReader.py)公司名称:

^{pr2}$

我正在寻找一些关于如何编写循环的帮助,以便xmlReader.py在整个文件中继续,而不是仅一行。运行此脚本时出现以下错误:

执行过程中的错误:

xxxx@xxxx:~/xxxx/xxxx> python xmlReader.py 
Traceback (most recent call last):
  File "xmlReader.py", line 2, in <module>
    xmltree = parse('testData3.xml')
  File "/usr/lib64/python2.6/site-packages/_xmlplus/dom/minidom.py", line 1915, in parse
    return expatbuilder.parse(file)
  File "/usr/lib64/python2.6/site-packages/_xmlplus/dom/expatbuilder.py", line 926, in parse
    result = builder.parseFile(fp)
  File "/usr/lib64/python2.6/site-packages/_xmlplus/dom/expatbuilder.py", line 207, in parseFile
    parser.Parse(buffer, 0)
xml.parsers.expat.ExpatError: junk after document element: line 2, column 0
xxxx@xxxx:~/xxxx/xxxx> 

Tags: 文件数据inpy脚本parseusrline
0条回答
网友
1楼 · 发布于 2024-03-29 07:12:47

问题是示例数据不是有效的XML。一个有效的XML文档应该有一个根元素;对于文件的一行来说是这样,其中<r>是根元素,但是在添加第二行时不是这样,因为每一行都包含在一个单独的<r>元素中,但是文件中没有全局父元素。在

要么构造有效的XML,例如:

<root>
    <r><c>something1</c><c>something1</c><c>something1</c><c>something1</c><c>something1</c><c>something1</c><c>something1</c><c>something1</c><c></c><c></c><c>something1</c><c>something1</c></r>
    <r><c>something2</c><c>something2</c><c>something2</c><c>something2</c><c>something2</c><c>something2</c><c>something2</c><c>something2</c><c></c><c></c><c>something2</c><c>something2</c></r>
</root>

或者逐行解析文件:

^{pr2}$

相关问题 更多 >