Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何找到两个HTML文本之间的差异?_Java - Fatal编程技术网

Java 如何找到两个HTML文本之间的差异?

Java 如何找到两个HTML文本之间的差异?,java,Java,如何找出两个HTML文本之间的差异 我需要类似的东西 Diff-Patch-Match的问题是,它只查找两个纯文本之间的差异,而不查找HTML文本之间的差异。您可以使用类似的库提取文本,然后应用此Diff正是您所需要的 a.txt Hello hi friends Hello world hi C:\Documents and Settings\Administrator\Desktop>java Diff a.txt b.txt >>>> Differen

如何找出两个HTML文本之间的差异

我需要类似的东西


Diff-Patch-Match的问题是,它只查找两个纯文本之间的差异,而不查找HTML文本之间的差异。

您可以使用类似的库提取文本,然后应用此Diff

正是您所需要的

a.txt

Hello

hi friends
Hello world

hi
C:\Documents and Settings\Administrator\Desktop>java Diff a.txt b.txt
>>>> Difference of file "a.txt" and file "b.txt".

>>>> 1 CHANGED FROM
Hello

hi friends
>>>>     CHANGED TO
Hello world

hi

>>>> End of differences.
b.txt

Hello

hi friends
Hello world

hi
C:\Documents and Settings\Administrator\Desktop>java Diff a.txt b.txt
>>>> Difference of file "a.txt" and file "b.txt".

>>>> 1 CHANGED FROM
Hello

hi friends
>>>>     CHANGED TO
Hello world

hi

>>>> End of differences.
输出

Hello

hi friends
Hello world

hi
C:\Documents and Settings\Administrator\Desktop>java Diff a.txt b.txt
>>>> Difference of file "a.txt" and file "b.txt".

>>>> 1 CHANGED FROM
Hello

hi friends
>>>>     CHANGED TO
Hello world

hi

>>>> End of differences.
用于处理每个.html文件


然后使用您喜爱的diff工具(例如diff Patch Match、windiff等)比较Html Tidy的输出。

您可以使用一些正则表达式从文本中剥离Html标记,然后使用diff Patch Match库对它们进行区分。 请注意,这不会在样式上发现任何差异

编辑:
如果您想显示所发现的差异以及它们的样式,您可以搜索修改文本中的差异,并对文本进行分析,以找到其周围的HTML,然后使用“显示差异以及此HTML”。

HTML和常规文本之间的差异是什么?!什么是HTML,然后是纯文本?你在寻找一个可以区分呈现HTML的工具吗?基本上,我的应用程序中有一个屏幕,其中有一个富文本编辑器。管理员用户将使用RTE输入文本。用户可以输入同一文本的不同版本。因此,对于例如v1,应该像“一些文本”。v2可以是“某些文本编辑”。这可以是纯文本或html,因为它是RTE。我需要找出这两个版本之间的差异。我想他也想知道html结构的差异。纯文本比较可能会发现以下差异:
因为空格。是的,但在本例中,在找到差异后,我将如何应用原始样式?这里有两个问题:1)如果您想用样式显示差异;2)如果您也想显示样式的差异,例如,显示有人在新版本中使用了粗体文本。你想两者都做吗?理想情况下,是的。但如果2)不可能,至少我应该能够展示风格上的差异。我更新了我的答案,告诉你如何实现1)