2012-02-01 20 views
6

私はHTMLアジャイルパックを使用してHTMLドキュメントを操作し、編集しています。私はこのようなフィールドのテキストを変更したい:HTML divのInnerTextタグをHTMLアジリティパックに置き換える

<div id="Div1"><b>Some text here.</b><br></div> 

私はこの内のテキストを更新するために探していますようにDIV:

<div id="Div1"><b>Some other text.</b><br></div> 

私は次のコードを使用してこれをやってみましたInnerTextプロパティは読み込み専用なので動作していないようです。

HtmlTextNode hNode = null; 
hNode = hDoc.DocumentNode.SelectSingleNode("//div[@id='Div1']") as HtmlTextNode; 
hNode.InnerText = "Some other text."; 
hDoc.Save("C:\FileName.html"); 

私はここで間違っていますか?上で述べたように、InnerTextは読み込み専用フィールドですが、「取得または設定する」ドキュメントに書かれています。これを行うための別の方法がありますか? //div[@id='Div1']HtmlTextNodeないdivを選択し、そうhNode変数はあなたの例ではnullを保持している:

答えて

9

式がここで使用されます。

プロパティは実際には読み取り専用ですが、HtmlTextNodeのプロパティはTextで、必要な値を設定できます。しかしこれの前に、そのテキストノードを取得する必要があります。これは次の式で簡単に行うことができます://div[@id='Div1']//b//text()

hNode = hDoc.DocumentNode 
    .SelectSingleNode("//div[@id='Div1']//b//text()") as HtmlTextNode; 
hNode.Text = "Some other text."; 
+0

魅力的な作品です!本当にありがとう... – Vivek

関連する問題