gpt4 book ai didi

Python BeautifulSoup,解析 XML

转载 作者:行者123 更新时间:2023-12-01 04:21:11 32 4
gpt4 key购买 nike

我只想提取 SQL 错误行:

SQL Error: failed

- 但是 msg 标记中的所有文本都会被打印:

Test: 01
SQL Error: failed


Test: 01
SQL Error: failed

文件.xml

<item>
<msg>
Test: 01
SQL Error: failed
</msg>
</item>
<item>
<msg>
Test: 01
SQL Error: failed
</msg>
</item>

代码:

import re
from BeautifulSoup import BeautifulStoneSoup

file = "file.xml"

with open(file, 'r') as f:
fobj = f.read()
bobj = BeautifulStoneSoup(fobj)
pattern = re.compile('SQL Error')
for error in bobj.findAll('msg', text=pattern):
print error

最佳答案

这就是它应该如何工作 - 作为 find_all() 调用的结果,您将获得一个 Tag 类实例。即使您打印出 error.text - 您也会获得 msg 元素的完整文本:

Test: 01
SQL Error: failed

假设您想要提取失败部分,您可以执行以下操作:

pattern = re.compile('SQL Error: (\w+)')
for error in bobj.find_all("msg", text=pattern):
print pattern.search(error.text).group(1)

这里我们使用capturing groupsSQL Error: 文本后保存一个或多个字母数字字符 (\w+)。

此外,您绝对应该升级到 BeautifulSoup 4 :

pip install beautifulsoup4

然后将其导入为:

from bs4 import BeautifulSoup

关于Python BeautifulSoup,解析 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33682248/

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