2017-05-25 61 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>