2012-02-25 254 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