2013-05-21 42 views
1

我使用lxml的圖書館......我在xml文件標籤稱爲轉換命名空間LXML到節點名的 - 蟒蛇

<a:rPr lang="en-US" dirty="0" smtClean="0"/> 和前綴a指命名空間

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 

我用xml.minidom在那裏我可以用a.nodeName得到標記名,但我沒有這功能可以給我的標籤名,而不命名空間即a:rPr在LXML什麼想法? 在此先感謝。

回答

0

使用XPath的name()

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

希望有所幫助。

+0

非常感謝你@alecxe .. – Sangamesh