python - 如何使用漂亮的汤访问 HTML 文件中的下一个元素
问题描述
<ns1:AffectedAreas>
<ns1:Area>
<ns1:AreaId>10YDK-1--------W</ns1:AreaId>
<ns1:AreaName>DK1</ns1:AreaName>
</ns1:Area>
</ns1:AffectedAreas>
我一直在尽最大努力通过使用然后访问ns1:AreaId
它,但我得到的只是一个空字符串。(10YDK-1--------W)
ns1:AffectedAreas
B = soup.find('ns1:area')
B.next_element
解决方案
如果您在 HTML/XML 文档中定义了名称空间,则可以使用xml
解析器和 CSS 选择器。
例如:
txt = '''<root xmlns:ns1="some namespace">
<ns1:AffectedAreas>
<ns1:Area>
<ns1:AreaId>10YDK-1--------W</ns1:AreaId>
<ns1:AreaName>DK1</ns1:AreaName>
</ns1:Area>
</ns1:AffectedAreas>
</root>'''
soup = BeautifulSoup(txt, 'xml')
area_id = soup.select_one('ns1|AffectedAreas ns1|AreaId').text
print(area_id)
印刷:
10YDK-1--------W
推荐阅读
- python - 梯度下降返回斜率和误差的 NaN 值
- html - IOS html5文件输入视频压缩480x360
- php - PHP 联系表问题 - 找到 302
- android - 如何访问不是活动的 java 类中的 xml 文件的元素?
- kubernetes - 在 EKS 上安装 kubernetes helm 时在哪里可以找到 ca.key
- javascript - React - TypeError:无法读取未定义的属性“setState”(箭头函数)
- python - 查找所有连续子数组
- ios - CollectionView 添加到视图时不滚动
- java - 如何从自定义视图类中正确终止活动?
- java - 如何在java中打印非ASCII字符?