from lxml import etree
xml = """
<book>
<id>1</id>
<name>野花遍地香</name>
<nick>SH</nick>
<price>1.23</price>
<author>
<nick>蔡文姬</nick>
<nick>澜</nick>
<nick>小鹿般</nick>
<div>
<nick>辅助1</nick>
</div>
<span>
<nick>辅助2</nick>
<div>
<nick>辅助3</nick>
</div>
</span>
</author>
<partner>
<nick id="ppc">胖胖菜</nick>
<nick id="ppbc">胖胖不菜</nick>
</partner>
</book>
"""
tree = etree.XML(xml) #将xml内容加载为etree的对象
# / 表示层级关系,第一个/是根节点
#result = tree.xpath("/book/name") #[<Element name at 0x1cbdfeef6c0>]
# text()拿文本
#result = tree.xpath("/book/name/text()") #text()拿文本 #['野花遍地香']
#result = tree.xpath("/book/author/div/nick/text()") #['辅助']
# // 所有后代
#result = tree.xpath("/book/author//nick/text()") #['蔡文姬', '澜', '小鹿般', '辅助1', '辅助2', '辅助3']
# *
#result = tree.xpath("/book/author/*/nick/text()") #['辅助1', '辅助2']
# 拿到所有后代信息
result = tree.xpath("/book//nick/text()") #['SH', '蔡文姬', '澜', '小鹿般', '辅助1', '辅助2', '辅助3', '胖胖菜', '胖胖不菜']
print(result)
python3学习之路 -- 9.3.1)- xpath测试
最新推荐文章于 2023-06-15 16:56:34 发布