lxml的常用方法

发布时间 2023-12-06 20:38:03作者: linux星

1. 从字符串解析HTML或XML:

```python

from lxml import etree

 

# 解析HTML

html = "<html><body><h1>Hello World</h1></body></html>"

tree = etree.HTML(html)

 

# 解析XML

xml = "<root><element>value</element></root>"

tree = etree.fromstring(xml)

```

 

2. 遍历XML或HTML元素:

```python

from lxml import etree

 

tree = etree.parse('file.xml')

root = tree.getroot()

 

# 遍历所有元素

for element in root.iter():

    print(element.tag, element.text)

 

# 遍历特定标签的元素

for element in root.iter('tag'):

    print(element.tag, element.text)

```

 

3. 获取元素的属性和文本内容:

```python

from lxml import etree

 

tree = etree.parse('file.xml')

root = tree.getroot()

 

# 获取元素的属性

element = root.find('tag')

attribute_value = element.get('attribute')

 

# 获取元素的文本内容

element_text = element.text

```

 

4. 查找元素:

```python

from lxml import etree

 

tree = etree.parse('file.xml')

root = tree.getroot()

 

# 根据路径查找元素

element = root.find('path/to/element')

 

# 根据标签查找元素列表

elements = root.findall('tag')

 

# 使用XPath查找元素

elements = root.xpath('//tag')

```

 

5. 修改元素的属性和文本内容:

```python

from lxml import etree

 

tree = etree.parse('file.xml')

root = tree.getroot()

 

# 修改元素的属性

element = root.find('tag')

element.set('attribute', 'new value')

 

# 修改元素的文本内容

element.text = 'new text'

 

# 将修改后的内容写入文件

tree.write('output.xml')

```

 

6. 创建新的元素和子元素:

```python

from lxml import etree

 

# 创建新的元素

new_element = etree.Element('tag', attrib={'attribute': 'value'})

 

# 添加子元素

new_child_element = etree.SubElement(new_element, 'child')

 

# 设置文本内容

new_child_element.text = 'text value'

```

 

这些是lxml库的一些常用方法和示例代码。你可以根据自己的需求使用这些方法来解析和处理XML或HTML文档。