2014-05-19 16 views
1

我使用etree和LXML,如何從XML文檔獲取特定的標記在python

我能夠得到的節點使用XPath的內容,但我想要的全部內容,包括標籤

<?xml version="1.0"?> 
<data> 
    <country name="Liechtenstein"> 
     <rank>1</rank> 
     <year>2008</year> 
     <gdppc>141100</gdppc> 
     <neighbor name="Austria" direction="E"/> 
     <neighbor name="Switzerland" direction="W"/> First Country 
    </country> 
    <country name="Singapore"> 
     <rank>4</rank> 
     <year>2011</year> 
     <gdppc>59900</gdppc> 
     <neighbor name="Malaysia" direction="N"/> Second Country 
    </country> 
    <country name="Panama"> 
     <rank>68</rank> 
     <year>2011</year> 
     <gdppc>13600</gdppc> 
     <neighbor name="Costa Rica" direction="W"/> 
     <neighbor name="Colombia" direction="E"/> Third Country 
    </country> 
</data> 

如果我給國家,我想作爲

<country name="Panama"> 
      <rank>68</rank> 
      <year>2011</year> 
      <gdppc>13600</gdppc> 
      <neighbor name="Costa Rica" direction="W"/> 
      <neighbor name="Colombia" direction="E"/> First Country 
</country> 

代碼正在使用要返回的文字,現在是

import xml.etree.ElementTree as ET 
tree = ET.parse('country_data.xml') 
root = tree.getroot() 
for i in tree.findall('.//country'): 
    print i.text 
+1

請同時包括(相關部分)Python代碼。 – Tomalak

+0

@Tomalak我已經添加了代碼現在 –

回答

2

這會爲你工作嗎?

for i in tree.findall('.//country'): 
    print ET.tostring(i) 
+0

感謝它的工作。 –