节点遍历相关操作
from lxml import etree root = etree.Element("root") etree.SubElement(root, "child").text = "Child 1" etree.SubElement(root, "child").text = "Child 2" etree.SubElement(root, "another").text = "Child 3" root.append(etree.Entity("#234")) root.append(etree.Comment("some comment")) print('遍历所有节点,包括entity和comment') print(etree.tostring(root, pretty_print=True)) print('\n') print('遍历所有节点') for element in root.iter(): print("%s - %s" % (element.tag, element.text)) print('\n') print('遍历所有child节点') for element in root.iter("child"): print("%s - %s" % (element.tag, element.text)) print('\n') print('遍历所有child节点和another节点') for element in root.iter("another", "child"): print("%s - %s" % (element.tag, element.text)) print('\n') print('遍历所有节点,包括entity和comment') for element in root.iter(): if isinstance(element.tag, str): # or 'str' in Python 3 print("%s - %s" % (element.tag, element.text)) else: print("SPECIAL: %s - %s" % (element, element.text)) print('\n') print('遍历所有节点') for element in root.iter(tag=etree.Element): print("%s - %s" % (element.tag, element.text)) print('\n') print('遍历所有entity') for element in root.iter(tag=etree.Entity): print(element.text) print('\n')
输出:
遍历所有节点,包括entity和comment b'<root><child>Child 1</child><child>Child 2</child><another>Child 3</another>ê<!--some comment--></root>\n' 遍历所有节点 root - None child - Child 1 child - Child 2 another - Child 3 <cyfunction Entity at 0x00000229A2BA41B8> - ê <cyfunction Comment at 0x00000229A2BA4048> - some comment 遍历所有child节点 child - Child 1 child - Child 2 遍历所有child节点和another节点 child - Child 1 child - Child 2 another - Child 3 遍历所有节点,包括entity和comment root - None child - Child 1 child - Child 2 another - Child 3 SPECIAL: ê - ê SPECIAL: <!--some comment--> - some comment 遍历所有节点 root - None child - Child 1 child - Child 2 another - Child 3 遍历所有entity ê
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------