我正在尝试获取XML属性的特定顺序。
给出
<OKV s="*****" r="*****" a="*****" g="****" m="*****" e="****" d="****" i="****" n="****" v="1"/>
必填:
<OKV v="1" n="****" i="****" d="****" e="****" m="*****" g="****" a="*****" r="*****" s="*****"/>
我正在尝试用Python实现。
到目前为止,当我使用xml库时。
import xml.etree.ElementTree as ET
tree = ET.parse('adhar.xml')
但是它一直以这种格式读取, 请告诉我们如何更改订单。 正如我在打开文件时在Internet Explorer中正确读取的信息一样,但是在读取文件或在Chrome中查看文件时却出现了反向顺序。
答案 0 :(得分:1)
对于此特定的xml字符串,您可以使用xmltodict(与pip install xmltodict
一起安装)。这会将xml数据转换为python字典。使用以下内容将颠倒OKV
条目的顺序:
import xmltodict
import collections
xml_data = '<OKV s="*****" r="*****" a="*****" g="****" m="*****" e="****" d="****" i="****" n="****" v="1"/>'
xml_data_parsed = xmltodict.parse(xml_data)
xml_data_parsed["OKV"] = collections.OrderedDict(reversed(list(xml_data_parsed["OKV"].items())))
xml_data = xmltodict.unparse(xml_data_parsed)
如果要重新排序的零件嵌入较大的xml文档中,则必须选择更深的嵌套键才能到达例如OKV
。
答案 1 :(得分:0)
尝试使用lxml解析xml文件。根据{{3}}的建议,它可能有助于按适当的顺序获取属性。