【问题标题】:Insert XML document into existing XML with Python使用 Python 将 XML 文档插入现有 XML
【发布时间】:2017-12-19 16:21:17
【问题描述】:

鉴于这些 XML 文档:

文档 1

<root>
  <element1>
  </element1>
</root>

文档 2

<request>
  <dummyValue>5</dummyValue>
</request>

使用 Pythons ElementTree 我想将第二个文档插入到第一个文档中,结果如下所示。

生成的文档

<root>
  <element1>
    <request>
      <dummyValue>5</dummyValue>
    </request>
  </element1>
</root>

ET.SubElement(element1, request) 给我一个序列化错误。

有没有 Pythonic 的方式来做到这一点?

【问题讨论】:

  • 如果您的代码会产生错误,请将该代码缩减为能够演示错误的最短的完整示例。请参阅minimal reproducible example 了解更多信息。

标签: python xml python-3.x elementtree


【解决方案1】:

SubElement() 构造一个Element,然后将其附加到树上。由于您已经将request 作为Element,因此您无需构建新的。

试试element1.append(request),像这样:

import xml.etree.ElementTree as ET

doc1 = ET.XML('''
<root>
  <element1>
  </element1>
</root>
''')

request = ET.XML('''
<request>
  <dummyValue>5</dummyValue>
</request>
''')

for element1 in doc1.findall('element1'):
    element1.append(request)

ET.dump(doc1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 2023-04-08
    • 1970-01-01
    • 2011-02-08
    • 2022-07-11
    相关资源
    最近更新 更多