【问题标题】:How can I search and replace in XML with Python?如何使用 Python 在 XML 中搜索和替换?
【发布时间】:2009-06-11 17:16:23
【问题描述】:

我正在制作一个用于翻译 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 节点,所以我需要它是相同的...

【问题讨论】:

    标签: python xml regex


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2016-10-18
        • 2022-10-23
        • 1970-01-01
        • 2017-02-03
        • 1970-01-01
        • 2012-07-08
        • 2022-11-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多