如何使用python(lxml)创建XML时指定命名空间

时间:2013-11-07 13:50:51

标签: python xml

我正在尝试使用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)

0 个答案:

没有答案