【发布时间】:2016-10-20 09:45:33
【问题描述】:
我正在通过 Jupyter Notebooks 使用 Pandas。我有 10 个存储在多个位置的 XML 文件。 例如:
./A/1.xml
./A/2.xml
./A/3.xml
./B/4.xml
./B/5.xml
./B/6.xml
如何加载所有这些文件,以便提取每个文件中的三个特定元素,例如 id、名称和假设?
我在问题的加载方面需要帮助。仅供参考,如果我对每个文件执行以下操作,则上面使用的路径有效:
from lxml import etree
ltree = etree.parse("./100/A/1.xml")
我更喜欢使用 BeautifulSoup 的解决方案,但是 lxml 或 ElementTree 也可以。
XML文档的结构是:
<?xml version="1.0" encoding="UTF-8"?>
<pub-ref>
<doc-id>
<country>US</country>
<doc-num>05040672</doc-num>
<date>20090219</date>
</doc-id>
</pub-ref>
<app-ref>
<doc-id>
<country>US</country>
<doc-num>111324</doc-num>
<date>20100919</date>
</doc-id>
</app-ref>
【问题讨论】:
-
对于一次性脚本,我会使用
subprocess.check_output(['ls', './*/*.xml']).split()来获取文件名列表。 -
请发布 XML 文件的结构,因为它是解析特定值所必需的。而且 pandas 没有现成的导入 XML 功能。所以你必须做一些数据操作。
标签: python xml beautifulsoup lxml elementtree