我有一个XML文件,其结构如下:
<element1>
<element2>
...
<element10 name="a">
...
我正在尝试使用ElementTree XML API在Python 2.7中解析此文件。但我正在寻找的数据深深隐藏在结构中。
有没有什么方法可以设置特定的伟大的-...- grand子元素(例如element10)作为根元素而不迭代整个结构?
答案 0 :(得分:1)
试试这个:
'(//*[starts-with(name(), "element")])[last()]'
$ cat file
<element1>
<element2></element2>
<element3></element3>
<element4></element4>
<element5></element5>
<element6></element6>
<element10 name="a">x</element10>
</element1>
(也适用于xmllint
)
$ saxon-lint.pl --xpath '(//*[starts-with(name(), "element")])[last()]' file
<element10 name="a">x</element10>
答案 1 :(得分:1)
由于this很棒的文章,我终于解决了它。
tree.iter(tag = 'element10')
这将在结构中找到所需的元素,然后您可以迭代他的子元素,即使树中有更多'element10'命名元素。
for element in tree.iter(tag = 'element10'):
...