Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ElementTree:查找没有元素的子级_Python_Xml_Elementtree - Fatal编程技术网

Python ElementTree:查找没有元素的子级

Python ElementTree:查找没有元素的子级,python,xml,elementtree,Python,Xml,Elementtree,我有一个XML文档,其中包含多个同名标记,如下所示: <record> <lang type="1">eng</lang> <lang>fra</lang> </record> 但是,如果我只想找到没有任何属性的元素,比如第二个元素,该怎么办?显然,我可以找到所有元素,然后进行if检查或尝试,但有更好的方法吗?遍历整个树,打印所有标记和属性 for el in tree.iter(): print

我有一个XML文档,其中包含多个同名标记,如下所示:

<record>
    <lang type="1">eng</lang>
    <lang>fra</lang>
</record>

但是,如果我只想找到没有任何属性的元素,比如第二个元素,该怎么办?显然,我可以找到所有元素,然后进行if检查或尝试,但有更好的方法吗?

遍历整个树,打印所有标记和属性

for el in tree.iter():
     print el.tag, el.attrib
for el in tree.iter(tag='record'):
     print el.tag, el.attrib
记录
标记开始遍历树,打印所有标记和属性

for el in tree.iter():
     print el.tag, el.attrib
for el in tree.iter(tag='record'):
     print el.tag, el.attrib
遍历
lang
标记


我也会看一看。这将帮助您找到解析XML节点的不同方法。

ElementTree没有实现完整的功能,因此它缺少布尔、数字和字符串比较函数等功能。正如您已经意识到的那样,您希望在这里执行的是负属性搜索,这在ET的有限XPath实现中是不可能的

ET的程序员依赖Python的comparator功能,通过pythonic if、check或try/except方法提供这些功能