python 中 lxml 的 etree 标签解析
一、安装
pip install lxml
二、创建标签
from lxml import etree root = etree.Element("root")
三、添加子节点
from lxml import etree root = etree.Element("root") span = etree.SubElement(root, "span")
四、删除子节点
from lxml import etree root = etree.Element("root") span = etree.SubElement(root, "span") root.remove(span)
五、删除所有子节点
from lxml import etree root = etree.Element("root") root.clear()
六、操作子节点
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"))
七、获取父节点
获取标签父节点的两种方法:
from lxml import etree root = etree.Element("root") span = etree.SubElement(root, "span") # 获取父节点方法一 span.getparent().tag # 获取父节点方法二,用列表获取子节点,再获取父节点 root[0].getparent().tag
八、创建属性
from lxml import etree root = etree.Element("root") root.set("title", "这是一个root标签")
九、获取属性
获取属性的三种方法
from lxml import etree root = etree.Element("root") # 获取属性方法一 root.get("title") # 获取属性方法二,参考字典的操作 root.keys(),root.values(),root.items() # 获取属性方法三,直接拿到属性存放的字典 root.attrib
十、设置标签文本
添加文本和追加文本
from lxml import etree root = etree.Element("root") # 标签内添加文本 root.text="i am autofelix" # 标签后追加文本 root.tail = "i am autofelix"
十一、xpath方法
from lxml import etree root = etree.Element("root") word = root.xpath("//text()") word[0].getparent().tag
十二、判断文本类型
from lxml import etree root = etree.Element("root") word = root.xpath("//text()") # 是否是text文本 word.is_text # 是否是tail文本 word.is_tail
十三、字符串解析
from lxml import etree html = etree.fromstring("autofelix ") html.tag etree.tostring(html)
十四、XML解析
from lxml import etree html = etree.XML("autofelix ") html.tag etree.tostring(html)
十五、去除XML中的空行
from lxml import etree # 去除xml文件里的空行 parser= etree.XMLParser(remove_blank_text=True) root = etree.XML("auto felix ", parser) print etree.tostring(root)
十六、HTML解析
HTML方法,如果没有和
标签,会自动补上from lxml import etree html = etree.HTML("autofelix ") etree.tostring(html)
十七、搜索和定位
from lxml import etree root = etree.XML("i am autofelix ") # 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 标签内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?