我正在尝试使用python创建XML文件。我想创建一个类似于下面的XML文件。
<?xml version="1.0" encoding="UTF-8"?>
<toplevel>
<ChildLevel
xmlns=http://schemas.dmtf.org/ovf/environment/1>
<Property key="username1" value="test"/>
<Property key="username2" value="testuser"/>
</ChildLevel>
</toplevel>
我编写了下面的python脚本并生成XML文件。但是如何在创建xml文件时指定命名空间。
from lxml import etree
from array import array
val_ = []
val_.append("username1## test ")
val_.append("username2## testuser ")
xml__= etree.Element('toplevel')
product_=etree.SubElement(ovf_env_xml, " ChildLevel")
for keyval_ in val_:
keyvalue_ = keyval_.split("##")
property_ = etree.SubElement(product_, 'Property')
property_.set("key", keyvalue_[0])
property_.set("value", keyvalue_[1])
etree.ElementTree(xml__).write("/tmp/test.xml", pretty_print=True)
输出XML文件:
<toplevel>
<ChildLevel>
<Property key="username1" value="test"/>
<Property key="username2" value="testuser"/>
</ChildLevel>
</toplevel
我需要在XML文件中附加多个命名空间。
对不起伙计..我在搜索了几个博客后得到了解决方案..我刚刚在我的python脚本中完成了以下更改。
nsmap = {
None: "urn:iso:std:iso:2013:008.001.02",
'xsi': "http://www.w3.org/2001/XMLSchema-instance",
}
xml__= etree.Element('toplevel',nsmap=nsmap)