2015-01-09 1 views
1

단순히 "input.xml"을 읽고 "output.xml"파일에 복사하는 python 스크립트가 있습니다. "output.xml"에서 보여 주듯이, Python의 Xpath는 ns0, ns1 태그를 생성합니다. 다른 XML 라이브러리 (예 : lxml)를 사용하지 않고 이러한 태그를 피하는 방법은 무엇입니까?파이썬 XML 생성 : lxml을 사용하지 않고 여러 개의 ns0 태그 사용하지 말것

스크립트 :

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> 

답변

0

나는이에 대한 간단한 해결책이 없다는 것을 두려워입니다.

잠시 닫히지 않은 것과 관련된 Python 버그 추적기에 issue이 있습니다.

제안 된 해결책을 따라 할 수는 있지만 분명하지는 않습니다.

내 추천은 lxml을 다시 사용하는 것입니다. 이는 XML 처리에 실질적인 힘을 제공하며, Google AppEngine에는이를 포함하고 있습니다.

+0

안녕하세요. 1xml이 python 3.4를 지원합니까? – Taewan

+0

@ Taewan 아주 좋은 질문입니다. 내 리눅스 머신에서 문제없이 설치했다. lxml의 소스 코드는 "이 lxml 버전은 파이썬 2.6, 2.7, 3.2 이상이 필요하다."고 주장했다. 이것은 소스 배포를 사용하여 컴파일하고 있습니다. Windows의 경우이 질문을 따르십시오. http://stackoverflow.com/questions/23944465/installing-lxml-for-python-3-4-on-windows-x-86-32-bit-with-visual- 스튜디오 -c-2. 어쨌든, 나는'lxml'을 수년간 사용해 왔으며 그것을 적극 추천합니다. 가능한 설치 문제를 극복하기위한 노력이 곧 보상 될 것입니다. –

관련 문제