gpt4 book ai didi

python - BeautifulSoup 中的 selfClosingTags

转载 作者:数据小太阳 更新时间:2023-10-29 02:07:28 26 4
gpt4 key购买 nike

使用 BeautifulSoup 解析我的 XML

import BeautifulSoup

soup = BeautifulSoup.BeautifulStoneSoup( """<alan x="y" /><anne>hello</anne>""" ) # selfClosingTags=['alan'])

print soup.prettify()

这将输出:

<alan x="y">
<anne>
hello
</anne>
</alan>

即,anne 标签是 alan 标签的子标签。

如果我在创建汤时传递 selfClosingTags=['alan'],我会得到:

<alan x="y" />
<anne>
hello
</anne>

太棒了!

我的问题:为什么不能使用 /> 来指示自闭标签?

最佳答案

你问的是作者在注意到他给类/模块命名如 Beautiful[Stone]Soup 之后的想法:-)

下面是 BeautifulStoneSoup 行为的另外两个示例:

>>> soup = BeautifulSoup.BeautifulStoneSoup(
"""<alan x="y" ><anne>hello</anne>"""
)
>>> print soup.prettify()
<alan x="y">
<anne>
hello
</anne>
</alan>

>>> soup = BeautifulSoup.BeautifulStoneSoup(
"""<alan x="y" ><anne>hello</anne>""",
selfClosingTags=['alan'])
>>> print soup.prettify()
<alan x="y" />
<anne>
hello
</anne>
>>>

我的观点是:如果没有为解析器定义自闭合标记,则它是不合法的。所以作者在决定如何处理像<alan x="y" />这样的非法片段时有选择。 ... (1) 假设 /是个错误 (2) 对待 alan作为一个自关闭标签,完全独立于它在输入中其他地方的使用方式 (3) 对输入进行 2 次传递,在第一次传递中确定每个标签的使用方式。你更喜欢哪个选择?

关于python - BeautifulSoup 中的 selfClosingTags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2211589/

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