将多个具有不同属性的xml文件合并到一个属性中

2024-03-28 15:20:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将多个xml文件合并为一个。我曾经遇到过很多类似的解决方案。但是,我没有找到一个适合我的问题。我有3个具有不同属性的xml文件。其中一个xml文件有一个<main1></main>。我正在尝试获取其他xml文件的内容,并将其与现有数据一起放入此标记中。在

测试1.xml

<acura>
    <Brand>Acura</Brand>
    <Model>NSX 2017</Model>
    <Price>156000</Price>
</acura>

文件2.xml

^{pr2}$

something3.xml

<main>
<bmw>
    <Brand>BMW</Brand>
    <Model>5 Series</Model>
    <Price>51200</Price>
</bwm>
</main>

Tags: 文件数据标记内容model属性mainxml
1条回答
网友
1楼 · 发布于 2024-03-28 15:20:31

您可能需要了解的主要内容是insert。在

解析每个文件,然后使用Brand以父级或祖父母的身份导航到汽车的品牌。最后insert。在

>>> import os
>>> os.chdir('c:/scratch')
>>> from lxml import etree
>>> test1 = etree.parse('test1.xml')
>>> file2 = etree.parse('file2.xml')
>>> something3 = etree.parse('something3.xml')
>>> acura = test1.find('Brand').getparent()
>>> acura
<Element acura at 0xa27388>
>>> honda = file2.find('Brand').getparent()
>>> main = something3.xpath('.//Brand')[0].getparent().getparent()
>>> main.insert(0, acura)
>>> main.insert(0, honda)
>>> str = etree.tostring(main, pretty_print=True)
>>> str
b'<main>\n<honda>\n    <Brand>Honda</Brand>\n    <Model>Accord</Model>\n    <Price>24</Price>\n</honda><acura>\n    <Brand>Acura</Brand>\n    <Model>NSX 2017</Model>\n    <Price>156000</Price>\n</acura><bmw>\n    <Brand>BMW</Brand>\n    <Model>5 Series</Model>\n    <Price>51200</Price>\n</bmw>\n</main>\n'

相关问题 更多 >