2010-12-03 144 views
2

使用html敏捷包;我将如何从完整的html文档中提取html“片段”?出于我的目的,html“片段”被定义为<body>标签内的所有内容。Html Agility Pack - 从html文档中获取html片段

例如:

样品输入:

<html> 
    <head> 
    <title>blah</title> 
    </head> 
    <body> 
    <p>My content</p> 
    </body> 
</html> 

所需的输出:

<p>My content</p> 

理想情况下,我想返回内容不变,如果它不包含<html><body>元素(例如,假设我通过一个片段,如果它不是一个完整的HTML文件)

任何人都可以指出我在正确的方向吗?

回答

6

我认为你需要把它做成碎片。

可以用于身体或HTML做文档的selectNodes如下

doc.DocumentNode.SelectSingleNode("//body") // returns body with entire contents :) 

那么你可以检查空值的标准,如果提供,可以原样使用的字符串。

希望它能帮助:)

+0

卫生署......想通这可能是这么简单;谢谢! – DanP 2010-12-03 19:05:34

4

下面的工作:

public string GetFragment(HtmlDocument document) 
{ 
    return doc.DocumentNode.SelectSingleNode("//body") == null ? doc.DocumentNode.InnerHtml : doc.DocumentNode.SelectSingleNode("//body").InnerHtml; 
} 
相关问题