一、安装
1
|
pip install lxml |
二、创建标签
1
2
3
|
from lxml import etree root = etree.Element( 'root' ) |
三、添加子节点
1
2
3
4
|
from lxml import etree root = etree.Element( 'root' ) span = etree.SubElement(root, 'span' ) |
四、删除子节点
1
2
3
4
5
6
|
from lxml import etree root = etree.Element( 'root' ) span = etree.SubElement(root, 'span' ) root.remove(span) |
五、删除所有子节点
1
2
3
4
|
from lxml import etree root = etree.Element( 'root' ) root.clear() |
六、操作子节点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
from lxml import etree root = etree.Element( 'root' ) span = etree.SubElement(root, 'span' ) # 获取标签数 len (root) # 获取标签索引号,如果有多个相同标签的话,可以区分 root.index(span) # 按位置插入 root.insert( 0 , etree.Element( 'p' )) # 尾部添加 root.append(etree.Element( 'strong' )) |
七、获取父节点
获取标签父节点的两种方法:
1
2
3
4
5
6
7
8
9
10
|
from lxml import etree root = etree.Element( 'root' ) span = etree.SubElement(root, 'span' ) # 获取父节点方法一 span.getparent().tag # 获取父节点方法二,用列表获取子节点,再获取父节点 root[ 0 ].getparent().tag |
八、创建属性
1
2
3
4
|
from lxml import etree root = etree.Element( 'root' ) root. set ( 'title' , '这是一个root标签' ) |
九、获取属性
获取属性的三种方法
1
2
3
4
5
6
7
8
|
from lxml import etree root = etree.Element( 'root' ) # 获取属性方法一 root.get( 'title' ) # 获取属性方法二,参考字典的操作 root.keys(),root.values(),root.items() # 获取属性方法三,直接拿到属性存放的字典 root.attrib |
十、设置标签文本
添加文本和追加文本
1
2
3
4
5
6
7
8
|
from lxml import etree root = etree.Element( 'root' ) # 标签内添加文本 root.text = 'i am autofelix' # 标签后追加文本 root.tail = 'i am autofelix' |
十一、xpath方法
1
2
3
4
5
6
|
from lxml import etree root = etree.Element( 'root' ) word = root.xpath( '//text()' ) word[ 0 ].getparent().tag |
十二、判断文本类型
1
2
3
4
5
6
7
8
9
|
from lxml import etree root = etree.Element( 'root' ) word = root.xpath( '//text()' ) # 是否是text文本 word.is_text # 是否是tail文本 word.is_tail |
十三、字符串解析
1
2
3
4
5
|
from lxml import etree html = etree.fromstring( '<root>autofelix</root>' ) html.tag etree.tostring(html) |
十四、XML解析
1
2
3
4
5
|
from lxml import etree html = etree.XML( '<root>autofelix</root>' ) html.tag etree.tostring(html) |
十五、去除XML中的空行
1
2
3
4
5
6
|
from lxml import etree # 去除xml文件里的空行 parser = etree.XMLParser(remove_blank_text = True ) root = etree.XML( '<root> auto felix </root>' , parser) print etree.tostring(root) |
十六、HTML解析
HTML方法,如果没有<html>和<body>标签,会自动补上
1
2
3
4
|
from lxml import etree html = etree.HTML( '<root>autofelix</root>' ) etree.tostring(html) |
十七、搜索和定位
1
2
3
4
5
6
7
8
9
10
11
|
from lxml import etree root = etree.XML( '<root><a class="uname">i am autofelix<b/><c/><b/></a></root>' ) # findall操作返回列表 root.findall( 'a' )[ 0 ].text # find操作就相当与找到了这个元素节点,返回匹配到的第一个元素 root.find( './/a' ).text # 配合列表解析 [ b.text for b in root.findall( './/a' ) ] # 根据属性查询 root.findall( './/a[@class]' )[ 0 ].tag |
到此这篇关于python 中 lxml 的 etree 标签解析的文章就介绍到这了,更多相关python etree 标签内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.51cto.com/autofelix/5150324