如何使用Python在XML中进行搜索和替换?

3
我正在制作一个用于翻译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节点,所以我需要它们保持一致...
2个回答

7
不要试图使用正则表达式来解析XML!XML不是正则的,因此正则表达式不能胜任这种任务。
请使用实际的XML解析器。许多这样的解析器对于Python开发者来说很容易获取。一个快速搜索将引导您进入这个SO问题,它介绍了如何在Python中使用XPath。

5

ElementTree是解析这种类型数据的好选择,易于使用、轻量级且支持在操作后输出XML(只需调用write()函数)。它已经随着Python标准库最新版本(我相信是2.6+)一起打包发布。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接