如何使用Python搜索和替换XML?

esp*_*akk 3 python regex xml

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

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

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

<template>lorem lipsum dolor mit amet<think><set name="she">Ada</set></think></template>
Run Code Online (Sandbox Code Playgroud)

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

我不能得到文本并重建xml格式的原因是将有不同格式的xml节点,所以我需要它是相同的...

Wel*_*bog 7

不要尝试使用正则表达式解析XML!XML不是常规的,因此正则表达式不适合执行此类任务.

使用实际的XML解析器.其中许多都可以用于Python.快速搜索引导我讨论如何在Python中使用XPath的SO问题.


Kai*_*Kai 5

ElementTree是这种解析的不错选择.它易于使用且轻量级,并支持在对其执行操作后输出XML(就像调用write()一样简单).它与最新版本的Python标准库一起打包(我相信2.6+).