gpt4 book ai didi

Python3 - 将每个字符附加到一个字符串(制作一行)

转载 作者:太空宇宙 更新时间:2023-11-04 11:17:00 27 4
gpt4 key购买 nike

我有一个 XML 元素,看起来像这样:

XML

<page>
<textline id="1">
<text>C</text>
<text>o</text>
<text>n</text>
<text>t</text>
<text>a</text>
<text>k</text>
<text>t</text>
</textline>
<textline id="2">
<text>
</text>
</textline>
<textline id="3">
<text>M</text>
<text>e</text>
</textline>
</page>

我正在尝试获取所有 <textline>标记:

with open(path_to_xml_file) as xml_file:    
parsed_xml = BeautifulSoup(xml_file, 'xml')
text_lines = parsed_xml.find_all("textline")

然而,text_lines包括 <textline> 的所有 child - 这意味着它包括所有 <text></text>标签。

我似乎无法在文档中找到任何解释如何只选择实际标签(而不是任何子标签、子子标签等)的内容。

我找到了 recursive=False选项,它应该只选择direct child ,所以我想我可以将它应用到 page标签:

text_lines = parsed_xml.find_all("page", recursive=False)

但这会返回一个空列表:[]

预期结果:

<textline id="1"></textline>
<textline id="2"></textline>
<textline id="3"></textline>

最佳答案

可以设置string=''

例如:

xml = """<page>
<textline id="1">
<text>C</text>
<text>o</text>
<text>n</text>
<text>t</text>
<text>a</text>
<text>k</text>
<text>t</text>
</textline>
<textline id="2">
<text>
</text>
</textline>
<textline id="3">
<text>M</text>
<text>e</text>
</textline>
</page>"""

from bs4 import BeautifulSoup
parsed_xml = BeautifulSoup(xml, 'xml')
text_lines = []
for tag in parsed_xml.find_all("textline"):
tag.string = ''
text_lines.append(tag)
print(text_lines)

输出:

[<textline id="1"></textline>,
<textline id="2"></textline>,
<textline id="3"></textline>]

关于Python3 - 将每个字符附加到一个字符串(制作一行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56785864/

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