【发布时间】:2015-03-21 19:03:06
【问题描述】:
我有类似这样的 XML
#filename sample.xml
<tag>
<tag1>
<tag2 property="something"/>
<tag2 property="something1"/>
<tag2 property="something2">value</tag2>
<tag2 property="something3">
<tag3>
<tag4 data="data1"/>
<tag4 data="data2"/>
</tag3>
</tag2>
</tag1>
</tag>
我想提取'data1' 和'data2'。我正在尝试这样的事情:
f=open('sample.xml')
fdata=f.read()
xmldata=BeautifulSoup(fadata)
print (xmldata.tag.tag1.tag2.tag3.tag4["data"])
但是它抛出了一个错误:
AttributeError: 'NoneType' object has no attribute 'tag4'
【问题讨论】:
-
BeautifulStoneSoup 属于 过时 BeautifulSoup 3;你应该使用 BeautifulSoup4 /
bs4。 BS3 不能正确解析 XML,而 BS4 可以。 -
@AnttiHaapala 使用 bs4。另外如何使用 xml.dom.minidom 来实现?
标签: python xml-parsing beautifulsoup minidom