Html Agility Pack unclosed embed,param标签

时间:2012-12-15 11:04:14

标签: c# asp.net .net html-agility-pack

尝试解析这样的embed-object标记:

  

HtmlNode source2 = HD.CreateElement(“source”);   source2.InnerHtml =

<object width="640" height="390" ><param name="movie" value="http://videa.hu/flvplayer.swf?v=SMxjdkVDqmrfAxJz" /><param name="allowscriptaccess" value="always" /><param name="allowFullScreen" value="true" /><embed width="640" height="390" src="http://videa.hu/flvplayer.swf?v=SMxjdkVDqmrfAxJz" allowscriptaccess="always" allowfullscreen="true" type="application/x-shockwave-flash" /></object><br /><a href="http://videa.hu/videok/jarmuvek/markoloval-tisztitjak-a-parkolot-az-SMxjdkVDqmrfAxJz"> title="fdsdf sdf">dsdfs fs dfsd fsd </a>n here.

问题是,当我尝试文档代码HD.DocumentNode.OuterHtmlsource2.InnerHtml时,param和embed标记将是未公开的。

我试过

  

HtmlNode.ElementsFlags [“param”] = HtmlElementFlag.Closed;

但获得一个额外的标签。

感谢

1 个答案:

答案 0 :(得分:2)

试试这个,

 HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
 document.LoadHtml(loadhtmlstring);
 document.OptionFixNestedTags = true;

当您将html加载到HtmlDocument时尝试修复html标记。那么你可以解决你的问题。允许自动修复HTML的标记错误。