在 xml 的子标签开头添加属性 using python 3
Add attribute at the beginning in the child tag in xml using python 3
我正在尝试在标签内添加属性,但它应该在开头。
我的输入是:
<data>
<Test Name="A" Class="1"/>
<Test Name="B" Class="2"/>
<Test Name="C" Class="3"/>
</data>
我需要输出为:
<data>
<Test ID="Hello" Name="A" Class="1"/>
<Test ID="Hello" Name="B" Class="2"/>
<Test ID="Hello" Name="C" Class="3"/>
</data>
但我得到这个:
<data>
<Test Name="A" Class="1" ID="Hello"/>
<Test Name="B" Class="2" ID="Hello"/>
<Test Name="C" Class="3" ID="Hello"/>
</data>
我在我的代码中使用了 from lxml import etree as ET
,但它在输出文件的末尾添加了属性。我一开始就需要。 import xml.etree.ElementTree as ET
给出输出,但按字母顺序排列。所以我尝试了 lxml
模块。
我的代码:
#import xml.etree.ElementTree as ET
from lxml import etree as ET
tree = ET.parse('sample.xml')
root = tree.getroot()
for test in root.iter('Test'):
test.set('Class', 'Hello')
tree.write('output.xml')
谢谢!
元素中的属性是一组无序的(名称、值)对。无法在无序集中的特定位置插入项目。
如果您正在为需要特定顺序属性的消费应用程序生成数据,那么消费应用程序已损坏,应该修复。如果您无法修复它,您也许可以找到允许您在序列化期间重新排序属性的工具:例如 Saxon-(PE/EE) 有一个序列化 属性 saxon:attribute-order
.
我正在尝试在标签内添加属性,但它应该在开头。 我的输入是:
<data>
<Test Name="A" Class="1"/>
<Test Name="B" Class="2"/>
<Test Name="C" Class="3"/>
</data>
我需要输出为:
<data>
<Test ID="Hello" Name="A" Class="1"/>
<Test ID="Hello" Name="B" Class="2"/>
<Test ID="Hello" Name="C" Class="3"/>
</data>
但我得到这个:
<data>
<Test Name="A" Class="1" ID="Hello"/>
<Test Name="B" Class="2" ID="Hello"/>
<Test Name="C" Class="3" ID="Hello"/>
</data>
我在我的代码中使用了 from lxml import etree as ET
,但它在输出文件的末尾添加了属性。我一开始就需要。 import xml.etree.ElementTree as ET
给出输出,但按字母顺序排列。所以我尝试了 lxml
模块。
我的代码:
#import xml.etree.ElementTree as ET
from lxml import etree as ET
tree = ET.parse('sample.xml')
root = tree.getroot()
for test in root.iter('Test'):
test.set('Class', 'Hello')
tree.write('output.xml')
谢谢!
元素中的属性是一组无序的(名称、值)对。无法在无序集中的特定位置插入项目。
如果您正在为需要特定顺序属性的消费应用程序生成数据,那么消费应用程序已损坏,应该修复。如果您无法修复它,您也许可以找到允许您在序列化期间重新排序属性的工具:例如 Saxon-(PE/EE) 有一个序列化 属性 saxon:attribute-order
.