我有一个很大的XML文件,结构如下:
<processo numero="XXXXX" data-deposito="XXXXX">
<despachos>
<despacho codigo="XXXXX" nome="DATA TO GET"/>
</despachos>
<titulares>
<titular nome-razao-social="XXXXX" pais="XX" uf="XX"/>
</titulares>
<marca apresentacao="XXXXX" natureza="XXXXX">
<nome>NAME TO FIND</nome>
</marca>
<lista-classe-nice>
<classe-nice codigo="XX">
<especificacao>XXXXXXXXXX</especificacao>
<status>XXXXX</status>
</classe-nice>
</lista-classe-nice>
</processo>
我使用下面的python代码来搜索和打印特定的数据
from lxml import etree
with open("XML-FILE.xml",'rb') as f:
file_content = f.read()
tree = etree.fromstring(file_content)
# get all customer records
customers = tree.xpath('//processo')
for customer in customers:
# note that xpath on text() returns a list
despacho = customer.xpath('/despachos/despacho/text()')[0]
nome = customer.xpath('/marca/nome/text()')[0]
print(nome)
print(despacho)
我试图在文件中搜索NAME TO FIND
下有<marca
的数据,然后再搜索内部的打印数据
<despachos>
<despacho codigo="XXXXX" nome="DATA TO GET"/>
</despachos>
问题是我没有获取任何数据,有时获取indexer:list索引超出范围错误
感谢您的帮助
请尝试以下XPath:
如果有多个文本匹配此XPath,则必须对其进行相应处理
此xpath应获取
despacho
元素中的属性测试
结果:
仅获取
@nome
属性的de值结果:
我向你推荐一个简单的图书馆。在使用之前,您需要安装:pip install-U simplified\U scrapy
结果:
相关问题 更多 >
编程相关推荐