如何使用 re 库提取 xml 值中给定标签列表的值? [复制]
Posted
技术标签:
【中文标题】如何使用 re 库提取 xml 值中给定标签列表的值? [复制]【英文标题】:How to extract the values for a list of given tags in the xml value using re library? [duplicate] 【发布时间】:2020-04-19 05:06:49 【问题描述】:我正在尝试在 xml 文件中提取字符串、int、char 等数据类型列表的值。除了这些数据类型标签之外,还有其他标签。
例如有 2 个标签,如下所示
<string> GenIdeal </string>
<int>88</int>
我已经写了下面的代码
re.findall(r"<string>(.*?)</string>", elem)
并且在尝试使用
时只获取字符串值re.findall(r"<int|string>(.*?)</int|string>", elem)
获取空值。
【问题讨论】:
这能回答你的问题吗? Regex select all text between tags 也许你想要要使您的正则表达式正常工作,只需在逻辑替代项周围添加常规括号,因此它将指示文字:
import re
x="""<string> GenIdeal </string>
<int>88</int> """
y=list(re.findall(r"<(int|string)>(.*?)</(int|string)>", x))
print(y)
返回:
[('string', ' GenIdeal ', 'string'), ('int', '88', 'int')]
附带说明 - 如果您的用例更复杂 - 请考虑使用 XML 解析器,例如
https://www.geeksforgeeks.org/xml-parsing-python/
或者
https://docs.python-guide.org/scenarios/xml/
【讨论】:
以上是关于如何使用 re 库提取 xml 值中给定标签列表的值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHP 从 XML“链接”标签中提取“href”属性?
当我从参数接收到 Iterable 时,如何使用带有 java8 的 Lamba 表达式从给定值中找到最接近的数字? [复制]