【发布时间】:2014-03-08 19:30:08
【问题描述】:
我正在使用元素树来解析 XML 文件。我有多个 XML 文件。 XML 文件的元素由唯一键 (SKU) 标识,但其他标记不同。我想将与另一个文件中的每个元素对应的标签组合起来。为此,我可以开始解析第一个 XML 的每个子元素并遍历其他文件的子元素以查找具有给定 sku 的元素:
tree = ET.parse(filename)
root = tree.getroot()
tree1 = ET.parse(filename1)
root1 = tree1.getroot()
...#more xmls
for child in root:
sku = child.find('SKU').text
for child1 in root1:
sku1 = child1.find('SKU').text
if sku == sku1:
#do something
但我意识到这种方法效率不高。有更好的方法吗?
谢谢
编辑:例如。第一个 xml 具有以下形式的元素:
<product>
<SKU>ABCD1234</SKU>
<_Image>something</_Image>
<_Image_Count>2</_Image_Count>
<_Image2>something</_Image2>
<_Image3>something</_Image3>
<_Orignal_Image>something</_Orignal_Image>
</product>
第二个 XML 具有以下形式的元素:
<product>
<Product_Code>ABCD1234</Product_Code>
<Designer>xxx</Designer>
<Taxon>yyy</Taxon>
<Parent_Taxon>zzz</Parent_Taxon>
<Taxonomy>aaa</Taxonomy>
<Quantity>1</Quantity>
<Cost>2</Cost>
<MRP>3</MRP>
<Price>4</Price>
</product>
我想结合这两个 XML 得到:
<product>
<SKU>ABCD1234</SKU>
<_Image>something</_Image>
<_Image_Count>2</_Image_Count>
<_Image2>something</_Image2>
<_Image3>something</_Image3>
<_Orignal_Image>something</_Orignal_Image>
<Product_Code>ABCD1234</Product_Code>
<Designer>xxx</Designer>
<Taxon>yyy</Taxon>
<Parent_Taxon>zzz</Parent_Taxon>
<Taxonomy>aaa</Taxonomy>
<Quantity>1</Quantity>
<Cost>2</Cost>
<MRP>3</MRP>
<Price>4</Price>
</product>
【问题讨论】:
-
不好意思说我没有关注 - 添加数据和输出的简短示例可能会有所帮助。
-
@PyNEwbie:添加了一个例子
标签: python xml elementtree