在解析某些XML时,我想确定是否遇到了特定元素的结束标记。这可以通过ElementTree XML API吗?
示例XML:
<data>
<folder name="a">
<folder name="b">
<file name="a1">
</file>
</folder>
<file name="b2">
</file>
</folder>
</data>
例如:在上面的XML中访问<file name="b2">
之前,我希望能够知道已经遇到</folder>
。
答案 0 :(得分:0)
只需使用ElementTree.fromstring()
即可假设您的xml文件如下:
xml1.xml
<?xml version="1.0" encoding="UTF-8"?>
<data>
<folder name="a">
<folder name="b">
<file name="a1">
</file>
</folder>
<file name="b2">
</file>
</folder>
</data>
xml2.xml
<?xml version="1.0" encoding="UTF-8"?>
<data>
<folder name="a">
<folder name="b">
<file name="a1">
</file>
</folder>
<file name="b2">
</file>
</data>
当您致电ElementTree.fromstring(open('xml1.xml').read())
时,它将正确完成。
当您致电ElementTree.fromstring(open('xml2.xml').read())
时,会引发错误,名为xml.parsers.expat.ExpatError: mismatched tag
,这意味着您的文件夹代码无法完成。
如果这回答了您的问题,请确认。谢谢!