我在解析使用BeautifulSoup获得的XML方面有些费力,尽管我已经阅读了文档,但似乎无法使其与XML的设置方式一起正常工作。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xml" href="/static/atom.xsl"?>
<feed xmlns:s="server url here">
<!-- Feed elements>
<entry>
<!-- Other Elements -->
<content type="text/xml">
<s:dict>
<!-- Other keys. -->
<s:key name="sid">DATA I WANT HERE</s:key>
<!-- Other keys. -->
</s:dict>
<!-- Lots of other dicts here. -->
</content>
</entry>
<! -- Other entries -->
</feed>
我的目标是从属性为s:key
且值为name
的所有sid
获取数据。 (即,所有s:key
都有一个name
,但每个<entry>
中只有一个属于sid
类型。
如何在数据中打印出s:key
类型的相关sid
之间的所有文本?
我尝试过的是:
print(tree.findAll('key', {'name'}))
以及:
for elem in tree.feed.entry.content.dict.key:
print(elem)
但是很明显,这些是有缺陷的,不能按我希望的那样正常工作。
我如何完成我想要获得的东西?
答案 0 :(得分:1)
尝试以下代码:
soup = bs4.BeautifulSoup(html_doc, 'lxml')
elements = soup.findAll("s:key", {"name" : "sid"})
for lele in elements:
print(lele.text)
输出:-
DATA I WANT HERE