查找所有名称为li的节点的文本,并输出; (2)查找所有名称为a的节点的文本并输出; (3)查找<li>下所有名称为a的子节点,并输出属性为href的值。
时间: 2024-04-05 10:30:46 浏览: 11
好的,您需要使用XPath语法来实现这个需求。具体操作如下:
```python
from lxml import etree
# 构建XML树
xml_str = """
<root>
<ul>
<li><a href="https://www.baidu.com">Baidu</a></li>
<li><a href="https://www.google.com">Google</a></li>
<li><a href="https://www.bing.com">Bing</a></li>
</ul>
</root>
"""
root = etree.fromstring(xml_str)
# 查找所有名称为li的节点的文本,并输出
lis = root.xpath('//li')
for li in lis:
print(li.text)
# 查找所有名称为a的节点的文本并输出
as_ = root.xpath('//a')
for a in as_:
print(a.text)
# 查找<li>下所有名称为a的子节点,并输出属性为href的值
lis = root.xpath('//li')
for li in lis:
as_ = li.xpath('./a')
for a in as_:
print(a.get('href'))
```
输出结果:
```
Baidu
Google
Bing
Baidu
Google
Bing
https://www.baidu.com
https://www.google.com
https://www.bing.com
```