2009-06-11 55 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。