如何修復html標籤(缺少<open> & <close>標籤)與HTMLAgilityPack

c# dom html-agility-pack

我有一個帶<div><h1> hello Hi</div> <div>hi </p></div>的html <div><h1> hello Hi</div> <div>hi </p></div>

必需輸出: <div><h1> hello </h1></div> <div><p>hi </p></div>

使用HTML敏捷包是否可以通過缺少關閉和打開標籤來修復此類問題?

一般承認的答案

這個庫不夠聰明,無法創建你放置它的開口p ,但它足夠智能,可以創建丟失的h1 。一般來說,它始終創建有效的HTML,但並不總是您期望的那個。

所以這段代碼:

        HtmlDocument doc = new HtmlDocument();
        doc.Load(yourhtml);
        doc.Save(Console.Out);

會拋棄這個:

        HtmlDocument doc = new HtmlDocument();
        doc.Load(yourhtml);
        doc.Save(Console.Out);

這不是你想要的,但是有效的HTML。你還可以添加一個這樣的小技巧:

        HtmlDocument doc = new HtmlDocument();
        doc.Load(yourhtml);
        doc.Save(Console.Out);

會拋棄這個:

        HtmlDocument doc = new HtmlDocument();
        doc.Load(yourhtml);
        doc.Save(Console.Out);

熱門答案

在執行HtmlAgilityPack.HtmlDocument.LoadHTML(yourhtml) HTMLAgilityPack會自動為您修復標記,然後您可以使用以下命令訪問這些標記: HtmlAgilityPack.HtmlDocument.DocumentNode.OuterHTML




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因