2017-08-02 51 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