2012-02-25 121 views
-3

如何比较2个html字符串是否相等?我正在尝试一些与Agility pack有关的“东西”,但它没有比较方法或类似的东西。如何比较2个HTML字符串

为了记录,.NET框架没有办法。

[编辑]

有了比较2个HTML字符串,我指的是网页的innerHTML

[/编辑]

实施例:

例如,按下此页面上点击鼠标右键,然后点击 '页面视图源'(I使用Firefox)。将该内容置于string变量。

现在再次这样做,完全像你以前做的,但选择另一个页面,并创建一个新的string变量。

完成后,将这2 strings相互比较。

+2

你是什么意思_“比较2 HTML字符串”_?你想如何比较它们? – gdoron 2012-02-25 18:41:07

+2

这些字符串的平等标准是什么?请提供示例 – sll 2012-02-25 18:41:17

+1

字符串是一个字符串,它为什么包含HTML?我想你需要提供更多的细节,你真的想要比较... – 2012-02-25 18:46:47

回答

0

假设你只对HTML元素的文本内容感兴趣,那么就比较两个元素的.InnerText属性 - 这会返回一个包含所有“#”元素的所有连接的字符串,文本“节点的所有子节点。

+0

嗨,它实际上是关于整个HTML页面。一切都在里面。包括标签等。 – Yustme 2012-02-25 19:12:58

1

如果你真的在比较有效的XML,这一切都很重要。

HTML是来自XML的派生语言,如果两个string都是有效的XML,那么您始终可以创建两个XMLDocument并将它们相等地进行比较。

如果有你的HTML语法有问题,那么你就需要其他算法表的比较,像剥所有的双空格,剥去标签之间的所有空间,并加以比较。当然,你需要的

锻炼正确的代表<body style="padding:2em;color:white;">是完全一样的<body style="color:white;padding:2em">作为HTML的缘故...

+0

该网站不是我的,所以即使它没有形成良好,我也无能为力。不过,我对你的第三段中的解决方案非常感兴趣。将string.Trim()做的伎俩? – Yustme 2012-02-25 19:12:01

+0

XHTML可能基于XML,但HTML基于SGML。您可以拥有无​​效的XML并且无法由XML解析器处理的有效HTML。 – Ferruccio 2012-02-25 19:25:54