Python 在lxml中,iterDescents()和iterchildren()之间有什么区别?
在LXML python库中,如何迭代?lxml-python中的iterdescendants()和iterchildren()有什么区别?当您使用iterchildren()时,您会迭代一级child。当您使用iterDescents()时,您将迭代childs和childs中的childs 我们可以使用以下迭代对标记进行迭代: iTrancestors(self,tag=None,*tags) 迭代此元素的祖先(从父元素到父元素) iterchildren(self,tag=None,reversed=False,*tags) 迭代此元素的子元素 iTerDescents(自我,标记=无,*标记) 按文档顺序迭代此元素的子体 iterfind(self、path、名称空间=None) 按标记名或路径迭代所有匹配的子元素 itersiblings(self,tag=None,previous=False,*tags) 迭代此元素的以下或之前的同级 下面的代码可以理解这种差异Python 在lxml中,iterDescents()和iterchildren()之间有什么区别?,python,lxml,Python,Lxml,在LXML python库中,如何迭代?lxml-python中的iterdescendants()和iterchildren()有什么区别?当您使用iterchildren()时,您会迭代一级child。当您使用iterDescents()时,您将迭代childs和childs中的childs 我们可以使用以下迭代对标记进行迭代: iTrancestors(self,tag=None,*tags) 迭代此元素的祖先(从父元素到父元素) iterchildren(self,tag=None,re
from lxml import etree
xml_str = '<main><child><c1><c11/><c12/></c1><c2/></child><child1/><child2/></main>'
parser = etree.XMLParser(ns_clean=True)
root = etree.XML(xml_str,parser)
Iterchildren()将仅返回子标记
for i in root[0].iterchildren():
print(i.tag)
output:
c1
c2
使用
iterchildren
可以迭代直接子级(对于下面的树,它意味着您只迭代7,5),而使用iterchildren
可以迭代直接或间接子级(对于下面的树,您将迭代7,5,2,6…等等)
for i in root[0].iterchildren():
print(i.tag)
output:
c1
c2