2017-08-02 128 views
0

我一直在嘗試幾個小時來解析這個示例xml從使用python的URL,但我無法提取定義。這是什麼樣子看起來像無法解析python中的URL xml

<entry_list version="1.0"> 
    <entry id="polycystic kidney disease"> 
    <ew>polycystic kidney disease</ew> 
    <hw>polycystic kidney disease</hw> 
    <fl>noun</fl> 
    <def> 
     <sensb> 
     <sens> 
      <dt> Blah blah blah 
      </dt> 
     </sens> 
     </sensb> 
    </def> 
    </entry> 
</entry_list> 

我想訪問'dt'標記,因爲那是我的定義是。這是包含xml的url的簡短版本。你能幫助我嗎?

+1

請勿張貼代碼圖片。 –

+0

你試過ElementTree了嗎? https://stackoverflow.com/a/1912483/5031672 –

+0

@ZacharyBlackwood是的,我看過ElementTree,我很難試圖提取定義,因爲它沒有與它相關聯的值,與您給出的示例不同 – danni1234

回答

0

如果安裝BeautifulSoup,這樣的事情應該工作

from bs4 import BeautifulSoup 

xml = '''<entry_list version="1.0"> 
    <entry id="polycystic kidney disease"> 
    <ew>polycystic kidney disease</ew> 
    <hw>polycystic kidney disease</hw> 
    <fl>noun</fl> 
    <def> 
     <sensb> 
     <sens> 
      <dt> Blah blah blah 
      </dt> 
     </sens> 
     </sensb> 
    </def> 
    </entry> 
</entry_list>''' 

parsed = BeautifulSoup(xml) 

for dt in parsed.findAll("dt"): 
    print dt.contents 
+0

沒關係一切工作謝謝你! – danni1234

0

這會爲你

進口xml.etree.ElementTree工作作爲ET

data = ''' 
<entry_list version="1.0"> 
    <entry id="polycystic kidney disease"> 
    <ew>polycystic kidney disease</ew> 
    <hw>polycystic kidney disease</hw> 
    <fl>noun</fl> 
    <def> 
     <sensb> 
     <sens> 
      <dt> Blah blah blah 
      </dt> 
     </sens> 
     </sensb> 
    </def> 
    </entry> 
</entry_list>''' 

flag = ET.fromstring(data) 
print flag.find('entry/def/sensb/sens/dt').text 
+0

我只是添加了代碼! – danni1234