【问题标题】:Insert xml element as nested element using ElementTree API in Python在 Python 中使用 ElementTree API 将 xml 元素插入为嵌套元素
【发布时间】:2020-04-19 20:30:55
【问题描述】:

我必须修改一个 XML 文档。我正在使用 Python 和 ElementTree API。但我遇到了障碍。 现在的结构是这样的:

<A>
    <B>
        <C>
            <...>
            </...>
        </C>
    </B>
</A>

我必须向 B 中添加一个子元素 B2,它是 C 的父元素,这样新的结构是:

<A>
    <B>
        <B2>
            <C>
                <...>
                </...>
            </C>
        </B2>
    </B>
</A>

现在,当我尝试添加一个子元素时,它正在创建一个子元素,但不是作为 C 的父元素,新元素将作为 B 中的一个单独元素出现。 任何人都可以帮助我并指导我如何创建一个子元素作为另一个元素的父元素吗?

提前致谢。

【问题讨论】:

  • 如何创建一个子元素作为另一个元素的父元素?:你不能,你必须删除C,插入B2 和。将C 添加为B2 的子级

标签: python xml elementtree


【解决方案1】:

这是一种不明智的使用字符串连接的方法,仅供参考。

from simplified_scrapy import SimplifiedDoc,req,utils
html = '''
<A>
    <B>
        <C>
            <...>
            </...>
        </C>
    </B>
</A>
'''
doc = SimplifiedDoc(html)
c = doc.select('C')
html = doc.html[0:c._start]+"<B2>"+c.outerHtml+"</B2>"+doc.html[c._end:]
print(html)

结果:

<A>
    <B>
        <B2><C>
            <...>
            </...>
        </C></B2>
    </B>
</A>

这里有更多示例。 https://github.com/yiyedata/simplified-scrapy-demo/blob/master/doc_examples/element.py

【讨论】:

    猜你喜欢
    • 2015-05-05
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 2021-11-15
    相关资源
    最近更新 更多