我正在制作一个用于翻译 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/