2011-06-30 62 views
9

這個任務很簡單,但我找不到答案。Html Agility Pack/C#:如何創建/替換標籤?

使用Node.Remove()很容易刪除標籤(節點)...但是如何替換它們?

有一個ReplaceChild()方法,但它需要創建一個新的標籤。我如何設置標籤的內容? InnerHtml和OuterHtml是隻讀屬性。

回答

12

看到這個代碼片段:

public string ReplaceTextBoxByLabel(string htmlContent) 
{ 
    HtmlDocument doc = new HtmlDocument(); 
    doc.LoadHtml(htmlContent); 

    foreach(HtmlNode tb in doc.DocumentNode.SelectNodes("//input[@type='text']")) 
    { 
    string value = tb.Attributes.Contains("value") ? tb.Attributes["value"].Value : " "; 
    HtmlNode lbl = doc.CreateElement("span"); 
    lbl.InnerHtml = value; 

    tb.ParentNode.ReplaceChild(lbl, tb); 
    } 

    return doc.DocumentNode.OuterHtml; 
} 
0

您確定InnerHtml是隻讀屬性嗎?

的HTMLAgility包的文檔,否則說:工(Cut &粘貼)

Gets or Sets the HTML between the start and end tags of the object. 

Namespace: HtmlAgilityPack 
Assembly: HtmlAgilityPack (in HtmlAgilityPack.dll) Version: 1.4.0.0 (1.4.0.0) 
Syntax 
C# 
public virtual string InnerHtml { get; set; } 

如果是隻讀的,你可以張貼一些代碼?