节点序列化

from lxml import etree

root = etree.XML('<root><a><b/></a></root>')
print(etree.tostring(root))
#输出:b'<root><a><b/></a></root>'

print(etree.tostring(root, xml_declaration=True))
#输出: <?xml version='1.0' encoding='ASCII'?>
#       <root><a><b/></a></root>

print(etree.tostring(root, encoding='iso-8859-1'))
#输出: <?xml version='1.0' encoding='iso-8859-1'?>
#       <root><a><b/></a></root>

print(etree.tostring(root, pretty_print=True))
'''输出:
    <root>
      <a>
        <b/>
      </a>
    </root>
'''

root = etree.XML('<html><head/><body><p>Hello<br/>World</p></body></html>')
print(etree.tostring(root))
#输出: b'<html><head/><body><p>Hello<br/>World</p></body></html>'

print(etree.tostring(root, method='xml'))
#输出: b'<html><head/><body><p>Hello<br/>World</p></body></html>'

print(etree.tostring(root, method='html'))
#输出: b'<html><head></head><body><p>Hello<br>World</p></body></html>'

print(etree.tostring(root, method='html', pretty_print=True))
'''输出: 
<html>
    <head></head>
    <body><p>Hello<br>World</p></body>
</html>
'''

print(etree.tostring(root, method='text'))
#输出: b'HelloWorld'

br = next(root.iter('br'))
br.tail = u'Wxf6rld'
etree.tostring(root, method='text')
#输出: 报错,因为编码默认是ascii,而不是unicode

print(etree.tostring(root, encoding='unicode', method='text'))
#输出:HelloWörld

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

原文地址:https://www.cnblogs.com/shiliye/p/11760303.html