【发布时间】:2019-07-09 09:21:37
【问题描述】:
我有这个 XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<record ID="#046CE9401D01467B2BDBAF0" NumDoc="1461">
<NAME>
<P>Pedrito De Rosa</P>
<P>NIE X1111222233</P>
<P>tf 2283396922</P>
<P>efael@hostmailer.com</P>
</NAME>
<ADDRESS>
<P>Paseo Jauregizahar 234 - 1. A. Donostia </P>
</ADDRESS>
<SUBJECT>
<P>paisaje y ciudad </P>
</SUBJECT>
<QUERYS>
<P>2014-12-10 Avance Normas Subsidiarias</P>
<P>Otras consultas</P>
</QUERYS>
</record>
</root>
我正在尝试读取此 XML 并将值插入 mysql 表(名称、地址、主题、查询)。问题是当我尝试读取例如这样的 NAME 字段时:
from lxml import etree as ET
tree = ET.parse('data/data.xml')
root = tree.getroot()
records = tree.findall('record')
for i, record in enumerate(records):
myname = record.find("NAME/P")
print (myname.text)
此代码的输出是“Pedrito De Rosa”,而不是所有内容。我的意思是,它应该获取“NAME”标签中的所有 P 元素,否则我们将丢失数据...
如何获取元素内的所有数据?我尝试使用 record.findAll("NAME/P") 但没有 findAll 方法。
任何帮助或线索?
如果有人可以提供帮助,我创建了一个 pyfiddle... https://pyfiddle.io/fiddle/9ed9743d-4d6e-4400-bfb5-19ba2bbf65f7/?i=true
提前致谢
【问题讨论】:
标签: python xml xml-parsing elementtree