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
ê
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------