你可以用
find_all
它将返回它找到的与这些元素匹配的所有元素的列表。你可以直接打电话
soup.find_all('media_type_id')
,但我不确定您的整个XML结构,如果您需要确保它在
media_type
否则,我们假设你必须检查它是否在
媒体类型
from bs4 import BeautifulSoup
xml = """
<allowed_media_types>
<media_type>
<media_type_id>3</media_type_id>
<media_type_name>Hello World</media_type_name>
<media_type_category_id>1</media_type_category_id>
<media_type_category_name>Selfies</media_type_category_name>
</media_type>
<media_type>
<media_type_id>55</media_type_id>
<media_type_name>Bye World</media_type_name>
<media_type_category_id>100</media_type_category_id>
<media_type_category_name>All Types</media_type_category_name>
</media_type>
</allowed_media_types>
"""
soup = BeautifulSoup(xml, 'xml')
print([node.find('media_type_id').text for node in soup.find_all('media_type')])
您还可以使用选择器并指定
媒体类型
直接子项标记(
>
)的
media_type_id
:
from bs4 import BeautifulSoup
xml = """
<allowed_media_types>
<media_type>
<media_type_id>3</media_type_id>
<media_type_name>Hello World</media_type_name>
<media_type_category_id>1</media_type_category_id>
<media_type_category_name>Selfies</media_type_category_name>
</media_type>
<media_type>
<media_type_id>55</media_type_id>
<media_type_name>Bye World</media_type_name>
<media_type_category_id>100</media_type_category_id>
<media_type_category_name>All Types</media_type_category_name>
</media_type>
</allowed_media_types>
"""
soup = BeautifulSoup(xml, 'xml')
print([node.text for node in soup.select('media_type > media_type_id')])
输出:
['3', '55']