【问题标题】:XML change tag name using Python使用 Python 更改 XML 标记名称
【发布时间】:2019-07-14 17:11:23
【问题描述】:

对 XML 和 Python 非常陌生。我想更改 XML 文档中某些元素的标签名称。以下是文档现在的样子:

<Company>
   <Employee>
      <SSN>111111111</SSN>
      <Dependent>
          <SSN>222222222</SSN>

我想将 Employee 下的标签更改为“EESSN”,并将 Dependent 下的标签保持不变。看起来像这样。

<Company>
   <Employee>
      <EESSN>111111111</EESSN>
      <Dependent>
          <SSN>222222222</SSN>

该文档包含数百家公司和数千名员工,都有数十到数百个子元素,因此我认为我需要一个查找和替换选项。

我想使用 ElementTree 模块。我唯一有效的代码是导入数据并将其写入新文件。感谢您的所有帮助!

【问题讨论】:

  • "我想使用 ElementTree 模块。" --- 你为什么不直接使用xslt
  • 使用the-parse-function 并执行element.tag = '&lt;new tag name&gt;'

标签: python xml tags


【解决方案1】:

如果你想使用 ElementTree,你可以找到所有 SSN 的子元素 Employee 并设置 tag

示例...

输入 (input.xml)

<Company>
    <Employee>
        <SSN>111111111</SSN>
        <Dependent>
            <SSN>222222222</SSN>
        </Dependent>
    </Employee>
</Company>

Python

import xml.etree.ElementTree as ET

tree = ET.parse("input.xml")

for elem in tree.findall("Employee/SSN"):
    elem.tag = "EESSN"

tree.write("output.xml")

输出 (output.xml)

<Company>
    <Employee>
        <EESSN>111111111</EESSN>
        <Dependent>
            <SSN>222222222</SSN>
        </Dependent>
    </Employee>
</Company>

【讨论】:

  • 伟大的丹尼尔。谢啦。很大的帮助!您是否碰巧看到我昨天发布的另一个问题,“如何使用 Python 在 XML 中复制和粘贴某些元素”。我认为就寻找元素而言,答案可能与您在这里向我展示的内容相同。现在我想复制它们并附加到其他元素。谢谢!
  • @Justin - 我没有,但有机会我会去看看。还请考虑通过选中它旁边的复选标记来接受我的答案。 (stackoverflow.com/help/someone-answers)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-07
  • 2018-06-10
  • 2014-09-05
  • 2019-07-14
  • 2014-11-17
相关资源
最近更新 更多