读写

  1. etree.parse(file) –> _ElementTree

    • 读入 xml 文件

      1
      2
      3
      4
      5
      6
      7
      
      from lxml import etree
      
      file = '/path/to/my.xml'
      
      result: etree._ElementTree = etree.parse(file)      # etree.ElementTree 类
      
      root: etree._Element = result.getroot()  # etree.Element 类
  2. etree.XML(xml_string) –> ElementTree

    • 注意: xml_string 不可以包含编码说明标签
  3. etree.HTML(html_string)
  4. etree.fromstring(given_string)

    • 注意: given_string 不可以包含编码说明标签

namespace 命名空间

参考:

获取 namespace

1
2
3
4
5
root_node = etree.fromstring(text=xml):
for i in root_node:
    print(i.nsmap)
    for x in i:
        print(x.nsmap)

find 中使用 namespace

1
root.find('//{http://www.tei-c.org/ns/1.0}s')

注意

命名空间

  • 有命名空间 namespace (xmlns 等) 的 xml, 直接使用默认方式和 xpath 是不能搜索到的