python - 如何使用 Python 在 XML 中搜索和替换?

标签 python xml regex

我正在制作一个用于翻译 xml 文档的脚本。它实际上很酷,这个想法是(并且它正在工作)获取一个 xml 文件(或一个 xml 文件的文件夹)并打开它,解析 xml,获取一些标签之间的任何内容并使用谷歌翻译 api 翻译它并替换 xml 文件的内容。

正如我所说,我有这个工作,但只在相当严格的 xml 格式的文档中,现在我必须使其与格式不同的文档兼容。所以我的想法是:

解析xml,找到一个节点,例如:

<template>lorem lipsum dolor mit amet<think><set name="she">Ada</set></think></template>

将其保存为一个字符串,对这个字符串进行一些正则表达式搜索和替换。但遗憾的是,我不知道如何进行。我想搜索字符串(xml 节点)找到标签之间的文本,在本例中为“lorem lipsum dolor mit amet”和“Ada”,调用一个函数,将这些文本作为参数,然后插入函数的结果在它起源的同一个地方。

我不能只获取文本并重建 xml 格式的原因是会有不同格式的 xml 节点,所以我需要它是相同的...

最佳答案

不要尝试使用正则表达式来解析 XML! XML is not regular因此,正则表达式不适合执行此类任务。

使用实际的 XML 解析器。其中许多都可用于 Python。快速搜索使我找到了 this SO question其中介绍了如何在 Python 中使用 XPath。

关于python - 如何使用 Python 在 XML 中搜索和替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/982414/

相关文章:

Python Pandas : Join two tables keeping no duplicates but also not changing the first table

javascript - Python:更新通过浏览器中的 JavaScript 调用创建的 html 时出现问题

python - 列表理解从元组列表中提取多个字段

c - XML : Get an array of string from text cut by element

Java 正则表达式仅匹配单词('、-、空格)

python - 将变量值插入字符串

c# - 从 XML 读取/写入枚举

java - 使用 Jaxb 解码通用子项

python - 正则表达式拆分连续的换行符

regex - 你如何 stash .git 项目目录?