gpt4 book ai didi

python + libxml2 : Sorting XML node's elements according to attribute's value

转载 作者:行者123 更新时间:2023-11-30 23:23:13 24 4
gpt4 key购买 nike

我在 XML 文档中有以下节点:

<state>
<soso value="3"/>
<good value="1"/>
<bad value="2"/>
<unknown value="0"/>
</state>

我需要根据 value 属性的值对其元素进行排序,结果如下:

<state>
<unknown value="0"/>
<good value="1"/>
<bad value="2"/>
<soso value="3"/>
</state>

如何使用 libxml2 在 python 中做到这一点?

最佳答案

您可以通过以下方式使用 lxmlstate 标记的子级进行排序:

from lxml import etree

data = """
<state>
<soso value="3"/>
<good value="1"/>
<bad value="2"/>
<unknown value="0"/>
</state>
"""

state = etree.fromstring(data)
state[:] = sorted(state, key=lambda x: int(x.attrib.get('value')))
print etree.tostring(state)

打印:

<state>
<unknown value="0"/>
<good value="1"/>
<bad value="2"/>
<soso value="3"/>
</state>

请注意,听起来确实应用 XSLT 转换在这里更加符合逻辑且简单,请参阅:

另请参阅:

关于 python + libxml2 : Sorting XML node's elements according to attribute's value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24082222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com