2010-12-03 135 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; 
} 
相關問題