gpt4 book ai didi

python - BeautifulSoup:查询 XML 中的命名空间

转载 作者:行者123 更新时间:2023-12-01 08:32:26 24 4
gpt4 key购买 nike

我有一个带有自定义命名空间的 XML 文档:

<parent>
<c1:doc>
<c1:attr_a></c1:attr_a>
<c1:attr_b></c1:attr_b>
</c1:doc>
<c2:doc>
<c2:attr_a></c2:attr_a>
<c2:attr_b></c2:attr_b>
</c2:doc>
</parent>

是否可以在Python的BeautifulSoup中查询所有attr_a的值本文档中的属性?

我可以使用原始字符串操作遍历树,或者以非常繁琐的方式遍历父级的子级,但是是否可以查询 soup.find_all('*.attr_a')或者更直接类似?任何建议将不胜感激。

最佳答案

啊哈,显然可以使用正则表达式来完成这项任务。来自 docs :

If you pass in a regular expression object, Beautiful Soup will filter against that regular expression using its search() method. This code finds all the tags whose names start with the letter “b”; in this case, the tag and the tag:

html_doc = """
<parent>
<c1:doc>
<c1:attr_a></c1:attr_a>
<c1:attr_b></c1:attr_b>
</c1:doc>
<c2:doc>
<c2:attr_a></c2:attr_a>
<c2:attr_b></c2:attr_b>
</c2:doc>
</parent>
"""

from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')

import re
for tag in soup.find_all(re.compile(".attr_a")):
print(tag.name)

关于python - BeautifulSoup:查询 XML 中的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53856223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com