Python xml - 在与父标签相同的行中添加标签

Posted

技术标签:

【中文标题】Python xml - 在与父标签相同的行中添加标签【英文标题】:Python xml - Add tags in the same line with parent tag 【发布时间】:2021-11-28 10:40:33 【问题描述】:

我正在尝试通过解析其他 Source.xml 文件来制作 MyXml.xml 文件。 MyXml 的当前结构是:

<tag atrib="true" atrib2="false" atrib3="1" atrib4="7">
    <tag1 txt="CONTENT">
        <tag2 name="Category">1</Field>
        <tag3 name="Wallet"> </Field>
        <tag4 name="Increase">1</Field>
        <tag5 name="Text">
            <div />
        </tag5>
    </tag1>
</tag>

但我的输出应该是这样的(tag5的标签应该在同一行):

   <tag atrib="true" atrib2="false" atrib3="1" atrib4="7">
        <tag1 txt="CONTENT">
            <tag2 name="Category">1</Field>
            <tag3 name="Wallet"> </Field>
            <tag4 name="Increase">1</Field>
            <tag5 name="Text"><div><h2>SomeTxt</h2></div></tag5>
        </tag1>
    </tag>

当前代码是这样的:

MDroot = minidom.Document()
tag = MDroot.createElement('tag')
MDroot.appendChild(tag)

# Other tags
root = ET.Element('tag')
tag1 = ET.SubElement(root, 'tag1', txt= 'CONTENT')

ET.SubElement(tag1, "tag2", name='Category').text = "Heading"
ET.SubElement(tag1, "tag3", name='Wallet').text = ' '
ET.SubElement(tag1, "tag4", name='Increase').text = 1

tag5 = ET.SubElement(tag1, "tag5 ", name='Text')
div = ET.SubElement(tag5 , "div",)
root1 = ET.Element(tag5)
root1.insert(1, div)

但是这段代码总是创建带有父级的正常 xml 结构。知道如何将它们放在同一行吗?

谢谢!

【问题讨论】:

【参考方案1】:

在 xml 行中很重要!

<tag5 name="Text"><div><h2>SomeTxt</h2></div></tag5>

具有相同的含义:

<tag5 name="Text">
    <div>
      <h2>SomeTxt</h2>
    </div>
</tag5>

所以忽略这些行。

【讨论】:

我知道一般来说这根本不重要,问题是我必须将该 xml 导入一些外部程序中,该程序在读取常规文件时存在问题

以上是关于Python xml - 在与父标签相同的行中添加标签的主要内容,如果未能解决你的问题,请参考以下文章

是否可以添加检查所有子模块是否具有与父 pom 中定义的相同版本?

如何在动态创建的行中添加日期选择器

如果文本很长,如何使小吃栏操作按钮显示在不同的行中?

Python - 从文件中的行中剥离时间戳和用户名

Ruby Rails veiw 试图在与链接相同的行上显示标题(h1)

在与父级末尾对齐的图标左侧设置 EditText 的宽度