如何在lxml中的元素对象中更改和强制执行子元素的顺序?

时间:2019-02-28 23:47:06

标签: python xml lxml

在写出xml文件之前,如何获取元素对象并更改子元素顺序?我正在使用lxml。

我有一个XML对象,节点的顺序很重要,它们必须是特定顺序。问题是我正在对该元素执行预处理/元素附加操作,因此顺序发生了变化,等等。所以这是在我写出文件之前。

我正在接收XML文档并对其进行大量处理(加密),并添加自定义节点等。对于解密,某些子元素需要发生非常特定的顺序。

我知道我可以使用ParentNode.find(ns(NameSpace,TagName))找到它们,但是我该如何在ParentNode中排序子元素?

即我有

<arbitrary level>
.......
    <sub node_element>
        <sub_2> .. </sub_2>
        <sub_3> .. </sub_3>
        <sub_1> .. </sub_1>
    </sub node_element>
.......
</arbitrary level>

我需要确保它的顺序是任意的,在此示例中,我们选择数字,但很可能是3,2,1或2,1,3等...

<arbitrary level>
.....
    <sub node_element>
        <sub_1> .. </sub_1>
        <sub_2> .. </sub_2>
        <sub_3> .. </sub_3>
    </sub node_element>
......
</arbitrary level>

0 个答案:

没有答案