1)查找所有名称为li的节点的文本,并输出; (2)查找所有名称为a的节点的文本并输出; (3)查找<li>下所有名称为a的子节点,并输出属性为href的值。
时间: 2024-03-19 20:45:53 浏览: 102
1)好的,您需要使用XPath语法来实现这个需求。具体操作如下:
```python
from lxml import etree
# 构建XML树
xml_str = """
<root>
<li>li1</li>
<li>li2</li>
<li>li3</li>
<li>li4</li>
<a>a1</a>
<a>a2</a>
</root>
"""
root = etree.fromstring(xml_str)
# 查找所有名称为li的节点的文本,并输出
lis = root.xpath('//li')
for li in lis:
print(li.text)
```
输出结果:
```
li1
li2
li3
li4
```
2)同样需要使用XPath语法来实现这个需求,具体操作如下:
```python
# 查找所有名称为a的节点的文本并输出
as_ = root.xpath('//a')
for a in as_:
print(a.text)
```
输出结果:
```
a1
a2
```
3)还是需要使用XPath语法来实现这个需求,具体操作如下:
```python
# 查找<li>下所有名称为a的子节点,并输出属性为href的值
lis = root.xpath('//li')
for li in lis:
as_ = li.xpath('./a')
for a in as_:
print(a.get('href'))
```
输出结果:
```
(无输出,因为没有符合要求的节点)
```
阅读全文