У меня есть XML-то вроде этогоСинтаксический XML с использованием BeautifulSoup или minidom
#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 может. –
@ AnthiHaapala с помощью bs4. Также как можно достичь этого с помощью xml.dom.minidom? – fhulprogrammer