2013-05-21 7 views
1
내가 lxml이 라이브러리를 사용하고

... 난 접두사 a가 참조하는 네임 스페이스하는 xml 파일에 태그가변환 - 파이썬

<a:rPr lang="en-US" dirty="0" smtClean="0"/> 와 전화가

a="http://schemas.openxmlformats.org/drawingml/2006/main"^ 

나는 lxml-Xpath를 사용하여 태그 이름을 a:rPr으로 얻는다. 결과는 {http://schemas.openxmlformats.org/drawingml/2006/main}rPr'

다음은 내가 작성한 코드 단서이다 :

if doc == 'file.xml': 
     file = etree.parse(my_directory+doc) 
     path = file.xpath('/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr', namespaces={'p':'http://schemas.openxmlformats.org/presentationml/2006/main', 
      'a':'http://schemas.openxmlformats.org/drawingml/2006/main'}) 
     #print path 
     for a in path: 
      print a.tag 

나는 내가 태그 이름을 얻기 위해 a.nodeName을 사용할 수 있습니다 xml.minidom을 사용했다하지만 난 LXML에 공간 즉 a:rPr없이 나에게 태그 이름을 줄 수있는 기능이 어떤 생각을 가지고 있지 않은거야? 미리 감사드립니다.

답변

0

사용의 XPath의 name() :

for a in path: 
    print a.xpath('name()') # prints a:rPr 

희망하는 데 도움이됩니다.

+0

고맙습니다. @alecxe .. – Sangamesh