python?中?lxml?的?etree?標(biāo)簽解析
一、安裝
pip install lxml
二、創(chuàng)建標(biāo)簽
from lxml import etree root = etree.Element('root')
三、添加子節(jié)點(diǎn)
from lxml import etree root = etree.Element('root') span = etree.SubElement(root, 'span')
四、刪除子節(jié)點(diǎn)
from lxml import etree root = etree.Element('root') span = etree.SubElement(root, 'span') root.remove(span)
五、刪除所有子節(jié)點(diǎn)
from lxml import etree root = etree.Element('root') root.clear()
六、操作子節(jié)點(diǎn)
from lxml import etree root = etree.Element('root') span = etree.SubElement(root, 'span') # 獲取標(biāo)簽數(shù) len(root) # 獲取標(biāo)簽索引號(hào),如果有多個(gè)相同標(biāo)簽的話,可以區(qū)分 root.index(span) # 按位置插入 root.insert(0, etree.Element('p')) # 尾部添加 root.append(etree.Element('strong'))
七、獲取父節(jié)點(diǎn)
獲取標(biāo)簽父節(jié)點(diǎn)的兩種方法:
from lxml import etree root = etree.Element('root') span = etree.SubElement(root, 'span') # 獲取父節(jié)點(diǎn)方法一 span.getparent().tag # 獲取父節(jié)點(diǎn)方法二,用列表獲取子節(jié)點(diǎn),再獲取父節(jié)點(diǎn) root[0].getparent().tag
八、創(chuàng)建屬性
from lxml import etree root = etree.Element('root') root.set('title', '這是一個(gè)root標(biāo)簽')
九、獲取屬性
獲取屬性的三種方法
from lxml import etree root = etree.Element('root') # 獲取屬性方法一 root.get('title') # 獲取屬性方法二,參考字典的操作 root.keys(),root.values(),root.items() # 獲取屬性方法三,直接拿到屬性存放的字典 root.attrib
十、設(shè)置標(biāo)簽文本
添加文本和追加文本
from lxml import etree root = etree.Element('root') # 標(biāo)簽內(nèi)添加文本 root.text='i am autofelix' # 標(biāo)簽后追加文本 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('<root>autofelix</root>') html.tag etree.tostring(html)
十四、XML解析
from lxml import etree html = etree.XML('<root>autofelix</root>') html.tag etree.tostring(html)
十五、去除XML中的空行
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>標(biāo)簽,會(huì)自動(dòng)補(bǔ)上
from lxml import etree html = etree.HTML('<root>autofelix</root>') etree.tostring(html)
十七、搜索和定位
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操作就相當(dāng)與找到了這個(gè)元素節(jié)點(diǎn),返回匹配到的第一個(gè)元素 root.find('.//a').text # 配合列表解析 [ b.text for b in root.findall('.//a') ] # 根據(jù)屬性查詢 root.findall('.//a[@class]')[0].tag
到此這篇關(guān)于python 中 lxml 的 etree 標(biāo)簽解析的文章就介紹到這了,更多相關(guān)python etree 標(biāo)簽內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
windows上安裝Anaconda和python的教程詳解
本文主要給大家介紹windows上安裝Anaconda和python的教程詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-03-03如何將Python代碼轉(zhuǎn)化為可執(zhí)行的程序
在Python中,將代碼轉(zhuǎn)成可以執(zhí)行的程序需要安裝庫(kù)pyinstaller,如果是Windows用戶,打開Anaconda?Prompt輸入相對(duì)應(yīng)代碼,下面小編給大家詳細(xì)講解如何將Python代碼轉(zhuǎn)化為可執(zhí)行的程序,感興趣的朋友一起看看吧2024-03-03封裝Detours用于Python中x64函數(shù)hook詳解
Detours是微軟發(fā)布的一個(gè)API hook框架,同時(shí)支持x86和x64,看文檔說也支持ARM和ARM64的Windows,這篇文章主要介紹了封裝Detours用于Python中x64函數(shù)hook,需要的朋友可以參考下2023-12-12Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)將多個(gè)映射合并為單個(gè)映射的方法
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)將多個(gè)映射合并為單個(gè)映射的方法,結(jié)合實(shí)例形式分析了Python字典映射合并操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-04-04Python標(biāo)準(zhǔn)庫(kù)inspect的具體使用方法
本篇文章主要介紹了Python標(biāo)準(zhǔn)庫(kù)inspect的具體使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12Python求解任意閉區(qū)間的所有素?cái)?shù)
本篇文章是一篇關(guān)于python求素?cái)?shù)的知識(shí)點(diǎn)內(nèi)容,如果大家在應(yīng)用中有用的到,不妨跟著學(xué)習(xí)下。2018-06-06Python實(shí)現(xiàn)圖數(shù)據(jù)處理的完整指南
圖是一種非常重要的數(shù)據(jù)結(jié)構(gòu),在Python中,我們可以使用鄰接矩陣來表示圖,這篇文章主要為大家介紹了Python實(shí)現(xiàn)圖數(shù)據(jù)處理的相關(guān)知識(shí),需要的可以參考下2024-04-04Python之兩種模式的生產(chǎn)者消費(fèi)者模型詳解
今天小編就為大家分享一篇Python之兩種模式的生產(chǎn)者消費(fèi)者模型詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10