【问题标题】:Python ElementTree: How to add SubElement at VERY specific position?Python ElementTree:如何在非常特定的位置添加子元素?
【发布时间】:2014-09-13 15:51:28
【问题描述】:

我想在 xml 文件中添加一个子元素,但在一个非常具体的位置,而不是附加到末尾。

标准方式是:

subi = ET.SubElement(root[0][0], 'subi')

这很好。

但是:假设 root[0][0] 已经有两个孩子,因此可以通过 root[0][0][0] 和 root[0][0][1] 访问。

我想让“subi”成为新的中间孩子,root[0][0][1],让原来的第二个孩子成为第三个孩子 root[0][0][2]。

有没有办法做到这一点? (我对生活和自然的体验会拒绝,但我对 python 寄予厚望=)

【问题讨论】:

    标签: python xml elementtree


    【解决方案1】:

    您可以使用Element.insert 方法。它允许您指定索引。

    例如,在第三个(索引:2)元素之前插入:

    >>> import xml.etree.ElementTree as ET
    >>>
    >>> root = ET.fromstring('''
    ... <root>
    ...     <first></first>
    ...     <second></second>
    ...     <third></third>
    ... </root>
    ... ''')
    >>>
    >>> new = ET.Element('new')
    >>> root.insert(2, new)  # <-----------
    >>> print(ET.tostring(root))
    <root>
        <first />
        <second />
        <new /><third />
    </root>
    

    【讨论】:

    • 这很有帮助,谢谢。但是,为了准确到达我想去的地方,我发现可以将其修改为 root[index].insert(position, element)。没有 [index] 我无法精确定位。 --> 但是插入是我要找的东西!
    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多