使用Python ElementTree XML API查找结束标签
在解析一些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>
这个结束标签。
1 个回答
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
,这意味着你的标签没有写完整。
如果这个回答对你有帮助,请确认一下。谢谢!