ExpatError:文档元素之后的垃圾

时间:2011-10-07 21:50:22

标签: python html-parsing minidom

我真的不知道,问题是什么?我收到以下错误:

File "C:\Python27\lib\xml\dom\expatbuilder.py", line 223, in parseString
parser.Parse(string, True)
ExpatError: junk after document element: line 5, column 0

我不会发现任何垃圾!有帮助吗?我疯了......

text = """<questionaire>
<question>
    <questiontext>Question1</questiontext>
    <answer>Your Answer: 99</answer>
</question>
<question>
    <questiontext>Question2</questiontext>
    <answer>Your Answer: 64</answer>
</question>
<question>
    <questiontext>Question3</questiontext>
    <answer>Your Answer: 46</answer>
</question>
<question>
    <questiontext>Bitte geben</questiontext>
    <answer>Your Answer: 544</answer>
    <answer>Your Answer: 943</answer>
</question>
</questionaire>"""

cleandata = text.split('<questionaire>')
cleandatastring= "".join(cleandata)
stripped = cleandatastring.strip()
planhtml = stripped.split('</questionaire>')[0]
clean= planhtml.strip()


from xml.dom import minidom

doc = minidom.parseString(clean)
for question in doc.getElementsByTagName('question'):
    for answer in question.getElementsByTagName('answer'):
        if answer.childNodes[0].nodeValue.strip() == 'Your Answer: 99':
            question.parentNode.removeChild(question)

print doc.toxml() 

感谢名单!

1 个答案:

答案 0 :(得分:7)

您的原始text字符串是格式良好的XML。然后你做了一堆破坏它的东西。解析你原来的text,你会没事的。

XML必须只有一个顶级元素。当您解析它时,它有许多顶级<question>标记。 XML解析器将第一个解析为根元素,然后惊讶地发现另一个顶级元素。