我通过Jupyter笔记本使用Pandas。我有10个XML文件存储在多个位置。 例如:
./A/1.xml
./A/2.xml
./A/3.xml
./B/4.xml
./B/5.xml
./B/6.xml
如何加载所有这些文件,以便我可以在每个文件中提取三个特定元素,例如id,name和hypothesis?
我在问题的加载方面需要帮助。如果我对每个文件执行以下操作,那么上面使用的路径是可行的:
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>
答案 0 :(得分:1)
使用glob
获取与您的模式匹配的所有文件的列表:
import glob
import os
from lxml import etree
dir = '/path/to/the/parent/directory/'
for file in glob.iglob(os.path.join(dir, '*/*.xml')):
with open(file) as f:
data = etree.parse(f)