2017-05-25 82 views
3

我試圖加載簡單的HTML:HtmlAgilityPack LoadHtml - 問題與空P-標籤

var html = "<div>something<p></p></div>"; 

var doc = new HtmlDocument(); 
doc.LoadHtml(html); 

加載此HTML doc.InnerHtml輸出之後:

<div>something<p></div> 

所以你可以看到它有失關閉P標籤和我搞砸了HTML。

我找不到任何解決方案,請誰能幫助我。

+3

你可以用'doc.OptionWriteEmptyNodes = TRUE'得到''

something

我 – haim770

+3

標誌着一個欺騙,但經過更多研究,我重新開放,因爲這不是一個錯誤。這是一個功能(是的,真的),輸出不會「混亂」。在這種特殊情況下,結束標籤是可選的。記住HTML不是XML。 [***「開始標記是必需的,如果父元素中沒有更多內容,並且父元素不是元素,則可以省略結束標記(.......)。」*** ](https://developer.mozilla.org/en/docs/Web/HTML/Element/p)您發佈的HTML滿足這些要求。 – spender

+0

@ haim770謝謝,這解決了我的問題。如果你想寫它作爲答案,所以我可以接受它。 – carpics

回答

1

OptionWriteEmptyNodes標誌是你在找什麼:

定義是否輸出期間關閉空節點都必須寫。

而且你的情況:

doc.OptionWriteEmptyNodes = true; 

產量:

<div>something<p /></div>