使用Python在两个字符串的差异周围插入xml标记

时间:2009-12-10 11:25:10

标签: python html parsing string

我有oldstring

'foobarba <span class="foo">z</span>'

newstring

'foodbar ba<span class="foo">z</span>'

为类名提供了一个字符串,它可能再次为"foo",让我们说"bar"

鉴于newstringoldstringbar,我想最终得到:

'foo<span class="bar">d</span> ba<span class="foo">z</span>'

我想区分两个字符串。如果新字符串更短,可能会检查空标签并通过它们...但是现在我们什么都不做。但是,如果新字符串更长(它可能会长1个字符,可能更长,但很少),我想找到新字符,检查它是否被适当的跨度包裹(具有给定的字符) bar),如果没有包裹,请将它包起来。

如果oldstring现在是:

'foo<span class="bar">d</span> ba<span class="foo">z</span>'

再次将foo作为类名和新闻字符串:

'foo<span class="bar">dz</span> ba<span class="foo">z</span>'

我想感受一下新的z字符并提出

'foo<span class="bar">d</span><span class="foo">z</span> ba<span class="foo">z</span>'

OR

'foo<span class="bar">d<span class="foo">z</span></span> ba<span class="foo">z</span>'

对于好的python模块的建议,甚至可能是stdlib的快速技巧都会很棒。我很累;可能会在明天醒来。

1 个答案:

答案 0 :(得分:1)

使用stdlib中的difflib查找字符串之间的差异,然后只在差异处插入span标记。