使用Python在MS Word XML中查找和替换文本运行

时间:2018-06-14 13:54:10

标签: python xml lxml openxml

我一直在尝试使用Python LXML库查找和替换XML文本运行。我目前的尝试:

v = ''
position = -1
positions = []

for cur in root.iter('t'):
    v = v + cur.text
    position = position + len(cur.text)
    positions.append(position)

v = v.replace("test string", "this is a test string")

i = 0
start = 0
end = positions[0]

for cur in root.iter('t'):
    try:
        cur.text = v[start:end]
        print cur.text
        start = end
        i = i + 1
        end = positions[i]
    except IndexError:
        break

简化示例XML:

<t>this is a test</t>
<w>asdfasdfsadf</w>
<t>test<t>
<w>ajsdfkladkjsf</w>
<t> string</t>

此方法将标记的内容放入字符串中,并跟踪发生拆分的索引。然后它对字符串进行替换,并将字符串写回到大致相同位置的XML中。不幸的是,一旦我在Word中打开文件,就会丢失随机空格并添加到其他位置。我知道这个方法可能不起作用,但是使用lxml解析器解决这个问题的最佳方法是什么。

编辑:我不想以字符串形式读取文件并进行编辑,我想编辑文件并保留所有格式。

0 个答案:

没有答案