使用html敏捷包;如何从完整的HTML文档中提取html“片段”?出于我的目的,html“片段”被定义为<body>
标签内的所有内容。
例如:
示例输入:
<html>
<head>
<title>blah</title>
</head>
<body>
<p>My content</p>
</body>
</html>
期望输出:
<p>My content</p>
理想情况下,如果内容不包含<html>
或<body>
元素,我希望不会更改内容(例如,假设我首先传递了一个片段,如果它不是这是一个完整的html文档)
有人能指出我正确的方向吗?
答案 0 :(得分:6)
我认为你需要分片。
您可以按如下方式为body或html执行文档的选择节点
doc.DocumentNode.SelectSingleNode("//body") // returns body with entire contents :)
然后您可以检查条件的空值,如果提供了该值,则可以按原样获取字符串。
希望有所帮助:)
答案 1 :(得分:5)
以下内容可行:
public string GetFragment(HtmlDocument document)
{
return doc.DocumentNode.SelectSingleNode("//body") == null ? doc.DocumentNode.InnerHtml : doc.DocumentNode.SelectSingleNode("//body").InnerHtml;
}