从多个文件夹解析多个xml文件,具有相同的格式并在变量中存储特定节点的文本

时间:2016-10-07 06:59:06

标签: xml python-2.7 pandas xml-parsing

我有用于解析来自不同目录的多个XML文件的代码:

for file in glob.iglob(os.path.join(dir, '100/**/*.xml')):
    with open(file) as f:
        data = etree.parse(f)

XML文件的格式为:

<us1>
<us2>
<p-r>
<document-id>
<country>US</country>
<doc-number>07640598</doc-number>
<kind>B1</kind>
<date>20100105</date>
</document-id>
</p-r>
<ab>
<c>
<document-id>
<country>US1</country>
<doc-number>07640598989834</doc-number>
<kind>B5</kind>
<date>20100106</date>
</document-id>
</c>
</ab>
</us2></us1>

现在,我想在&#34; doc-number&#34;中提取文字。在目录中存在的所有xml文件和变量存储之间。提取的数据是07640598。 如何提取选定的值并将其存储在变量??

1 个答案:

答案 0 :(得分:0)

您可以使用简单的XPath表达式来获取Car::available()->pluck('plate_no' , 'id'); 中特定名称的元素,例如:

ElementTree

如果你想让doc_no = data.find('.//doc-number') if doc_no is not None: print doc_no.text 成为doc-number的孩子,那么XPath表达式会略有变化:

p-r