请注意,我正试图用名称空间和根解析我的“default_values.xml”。然后我想用另一个xml文件的根扩展“defaul_values.xml”的根,它的名称是“test_values.xml”,并将组合的xml写入“final_values.xml”文件
到目前为止,我做了扩展(或合并)过程,但在“final.xml”文件中的名称空间上有问题。我的Python代码没有像我所希望的那样编写名称空间。这是xml文件和代码,也是我想在最后一步创建的xml文件:
“default\u values.xml”
<?xml version="1.0" encoding="UTF-8"?>
<myMainRoot xmlns:ns1="http://www.examplenamespace1.com/v123#"
xmlns:ns2="http://www.examplenamespace2.com/v123#"
xmlns:ns3="http://www.examplenamespace3.com/v123#"
xmlns="http://www.examplenamespace4.com"
xmlns:xsi="http://www.examplenamespace4.com/v123">
<title>
<version>1.0</version>
<realMadrid>
<Ronaldo>Portugal</Ronaldo>
</realMadrid>
<barcelona>
<Messi>Argentina</Messi>
</barcelona>
<teamNo>12-13-14</teamNo>
<gameDate>2017-04-23</gameDate>
<ns2:abc>
<ns2:abc1>
<ns2:abc2 Algorithm="http://www.examplenamespace5.com/">
</ns2:abc2>
<ns2:abc3 Algorithm="http://www.examplenamespace5.com/">
</ns2:abc3>
<ns2:abc4>
<ns2:abc5 Algorithm="http://www.examplenamespace5.com/">
</ns2:abc5>
<ns2:abc6>ZGVmYXVsdA==</ns2:abc6>
</ns2:abc4>
</ns2:abc1>
</ns2:abc>
</title>
</myMainRoot>
“test_values.xml”
<myChildRoot>
<jerseyNo>7</jerseyNo>
<transferTime>11.09.2009</transferTime>
<scoreNo>
<year1>23</year1>
<year2>22</year2>
<year3>21.0</year3>
</scoreNo>
<scoreNo>
<year1>43</year1>
<year2>42</year2>
<year3>41.0</year3>
</scoreNo>
<finalNo>2</finalNo>
</myChildRoot>
“final_values.xml”
<?xml version='1.0' encoding='UTF-8'?>
<ns0:myMainRoot xmlns:ns0="http://www.examplenamespace4.com" xmlns:ns1="http://www.examplenamespace2.com/v123#">
<ns0:title>
<ns0:version>1.0</ns0:version>
<ns0:realMadrid>
<ns0:Ronaldo>Portugal</ns0:Ronaldo>
</ns0:realMadrid>
<ns0:barcelona>
<ns0:Messi>Argentina</ns0:Messi>
</ns0:barcelona>
<ns0:teamNo>12-13-14</ns0:teamNo>
<ns0:gameDate>2017-04-23</ns0:gameDate>
<ns1:abc>
<ns1:abc1>
<ns1:abc2 Algorithm="http://www.examplenamespace5.com/">
</ns1:abc2>
<ns1:abc3 Algorithm="http://www.examplenamespace5.com/">
</ns1:abc3>
<ns1:abc4>
<ns1:abc5 Algorithm="http://www.examplenamespace5.com/">
</ns1:abc5>
<ns1:abc6>ZGVmYXVsdA==</ns1:abc6>
</ns1:abc4>
</ns1:abc1>
</ns1:abc>
</ns0:title>
<extended>
<jerseyNo>7</jerseyNo>
<transferTime>11.09.2009</transferTime>
<scoreNo>
<year1>23</year1>
<year2>22</year2>
<year3>21.0</year3>
</scoreNo>
<scoreNo>
<year1>43</year1>
<year2>42</year2>
<year3>41.0</year3>
</scoreNo>
<finalNo>2</finalNo>
</extended>
</ns0:myMainRoot>
还有我的Python代码:
import xml.etree.ElementTree as ET
tree_of_default_values_xml = ET.parse('1.xml')
root_of_default_values_xml = tree_of_default_values_xml.getroot()
tree_of_data_block_xml = ET.parse("2.xml")
root_of_data_block_xml = tree_of_data_block_xml.getroot()
subelement_to_extend_for_parent_xml_root = ET.SubElement(root_of_default_values_xml, "extended")
subelement_to_extend_for_parent_xml_root.extend(root_of_data_block_xml)
tree_of_default_values_xml.write("3.xml", encoding="UTF-8", xml_declaration=True)
最后,这是我想为“final.xml”做的结果:
<?xml version="1.0" encoding="UTF-8"?>
<myMainRoot xmlns:ns1="http://www.examplenamespace1.com/v123#"
xmlns:ns2="http://www.examplenamespace2.com/v123#"
xmlns:ns3="http://www.examplenamespace3.com/v123#"
xmlns="http://www.examplenamespace4.com"
xmlns:xsi="http://www.examplenamespace4.com/v123">
<title>
<version>1.0</version>
<realMadrid>
<Ronaldo>Portugal</Ronaldo>
</realMadrid>
<barcelona>
<Messi>Argentina</Messi>
</barcelona>
<teamNo>12-13-14</teamNo>
<gameDate>2017-04-23</gameDate>
<ns2:abc>
<ns2:abc1>
<ns2:abc2 Algorithm="http://www.examplenamespace5.com/">
</ns2:abc2>
<ns2:abc3 Algorithm="http://www.examplenamespace5.com/">
</ns2:abc3>
<ns2:abc4>
<ns2:abc5 Algorithm="http://www.examplenamespace5.com/">
</ns2:abc5>
<ns2:abc6>ZGVmYXVsdA==</ns2:abc6>
</ns2:abc4>
</ns2:abc1>
</ns2:abc>
</title>
<extended>
<jerseyNo>7</jerseyNo>
<transferTime>11.09.2009</transferTime>
<scoreNo>
<year1>23</year1>
<year2>22</year2>
<year3>21.0</year3>
</scoreNo>
<scoreNo>
<year1>43</year1>
<year2>42</year2>
<year3>41.0</year3>
</scoreNo>
<finalNo>2</finalNo>
</extended>
</myMainRoot>
目前没有回答
相关问题 更多 >
编程相关推荐