js或php找出两篇html文本不同处高亮思路

文本一:abcdefghijklmnopqrstuvwxyz文本二:abcdefghijkl111pqrstuvwxyz//文本二我把mno改成111了,找出不同,高亮1... 文本一:
abcdefghijklmnopqrstuvwxyz
文本二:
abcdefghijkl111pqrstuvwxyz //文本二我把mno改成111了,找出不同,高亮111

求思路,js或php两篇文章用户修改后快速审核需求,

两篇文章左右对比,比较,找出不同的地方(被修改的地方) 高亮出来
这样能快速定位差异地方,小编快速审核文章内容
求代码js php 都可以,
展开
 我来答
龙氏风采
2017-03-30 · 知道合伙人互联网行家
龙氏风采
知道合伙人互联网行家
采纳数:5849 获赞数:12817
从事互联网运营推广,5年以上互联网运营推广经验,丰富的实战经

向TA提问 私信TA
展开全部
首先,解析 HTML 有两种办法:
一种是基于事件回调的:比如 python 的 HTMLParser 和 PHP 的 SimpleXML。它在遇到 starttag、endtag 以及遇到 text node 时就调用你指定的函数。
第二种是建立起一个完整的 DOM 树,让你进行 DOM 操作。
现在的问题就是应该怎么定义“不同”。
如果你指的只是 text node 的 text content 不同,而 node tree 的结构完全相同的话,就很容易了,此时你可以使用第一种解析 HTML 的方法;只需要把第一个页面所有的 text node 按顺序存下来;然后把第二个 HTML 的所有 text node 与之一一比对就 ok 了。
如果页面结构都不同的话,就会复杂些。这种情况下可以用第二种解析 HTML 的方法建立起 DOM 树;然后可以一层一层递归地比对innerHTML:具体来说,比如你先比对<body>的 innerHTML。如果不一致的话,就一一比对其下所有元素的innerHTML。然后把其中innerHTML相同的节点忽略;对innerHTML不相同的节点再递归地进行处理。如果遇到某个元素在两个文档里的childNode数量不一的情况……那就看你想怎么办了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式