Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python XML生成:避免在没有lxml的情况下使用多个ns0标记_Python_Xml_Xpath_Elementtree_Prefix - Fatal编程技术网

Python XML生成:避免在没有lxml的情况下使用多个ns0标记

Python XML生成:避免在没有lxml的情况下使用多个ns0标记,python,xml,xpath,elementtree,prefix,Python,Xml,Xpath,Elementtree,Prefix,我有一个python脚本,它只读取“input.xml”并复制到“output.xml”文件中。如“output.xml”所示,Python的Xpath生成ns0,ns1标记。如何在不使用其他xml库(如lxml)的情况下避免这些标记 脚本: import xml.etree.ElementTree as ET fileName = "input.xml" tree = ET.parse(template) tree.write("output.xml") Input.xml: <C

我有一个python脚本,它只读取“input.xml”并复制到“output.xml”文件中。如“output.xml”所示,Python的Xpath生成
ns0
ns1
标记。如何在不使用其他xml库(如lxml)的情况下避免这些标记

脚本:

import xml.etree.ElementTree as ET

fileName = "input.xml"

tree = ET.parse(template)
tree.write("output.xml")
Input.xml:

<Car>
     <brand xmlns = "www.car.com" xmlns:brand="www.bmw.com">
          <arg key="name" value="series 3" />
     </brand>
     <market xmlns = "www.ebay.com">
          <arg key="name" value="auto"/>
     </market>
</Car>

output.xml:

<Car xmlns:ns0="www.car.com" xmlns:ns1="www.ebay.com">
     <ns0:brand>
          <ns0:arg key="name" value="series 3" />
     </ns0:brand>
     <ns1:market>
          <ns1:arg key="name" value="auto" />
     </ns1:market>
</Car>

恐怕没有简单的解决办法

Python中有一个bug跟踪器,它与暂时未关闭的bug跟踪器相关

您可以尝试遵循那里提出的解决方案,但看起来不太清楚


我的建议是重新考虑使用
lxml
——它为XML处理提供了真正的能力,googleappengine也包括了这一点。

Hi Jan,lxml支持python 3.4吗?@Taewan问得很好。在我的Linux机器上,我顺利安装了它——lxml的源代码声称“这个lxml版本需要Python 2.6、2.7、3.2或更高版本。”。这是使用源代码分发版来编译它。在Windows上,您可以按此问题进行操作。无论如何,我已经使用了多年的
lxml
,并强烈推荐它——克服可能出现的安装问题的努力很快就会得到回报。