我正在努力解析使用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)
但显然这些都是有缺陷的,并且不能按照我的要求正常工作。
我如何完成我想要获得的东西?
请尝试以下代码:
soup = bs4.BeautifulSoup(html_doc, 'lxml')
elements = soup.findAll("s:key", {"name" : "sid"})
for lele in elements:
print(lele.text)
输出: -
DATA I WANT HERE