2009-06-11 23 views
3

我正在做一个脚本来做xml文档的翻译。这实际上很酷,这个想法是(并且它正在工作)采取一个xml文件(或一个xml文件的文件夹)并打开它,解析XML,得到一些标签之间的任何内容,并使用谷歌翻译API翻译它并替换xml文件的内容。如何使用Python搜索和替换XML?

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

解析XML,找到一个节点,e.g:

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

保存此作为一个字符串,做一些正则表达式搜索,并在此字符串替换。但是我很遗憾地不知道如何继续。我想搜索字符串(xml节点)找到文本是inbetween标签,在这种情况下,“lorem lipsum dolor mit amet”和“Ada”,调用一个函数与这些文本的参数,然后插入函数的结果在起源于同一个地方。

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

回答

5

ElementTree将是这种解析的一个很好的选择。它很容易使用和轻量级,并且在对它进行操作后支持输出XML(就像调用write()一样简单)。它包含在最新版本的Python标准库中(我相信2.6+)。

7

不要尝试使用正则表达式解析XML ! XML is not regular,因此正则表达式不适合做这种任务。

使用实际的XML解析器。其中很多都可用于Python。快速搜索引导我到this SO question,其中涵盖了如何在Python中使用XPath。