メイン文書に反映された選択ノードの変更 - htmlagilitypack

c# html-agility-pack local-variables selectsinglenode

質問

私は、例えばノードを選択しています

HtmlDocument temp_HdDocument = new HtmlDocument();

temp_HdDocument.LoadHtml(mysource);

var vrTempNewNode = temp_HdDocument.SelectSingleNode("//a"));

私はこのようにノードを変更する

foreach (HtmlNode node in vrTempNewNode.SelectNodes("*"))
{
    node.Remove();
}

今私はvrTempNewNodeに変更をvrTempNewNodeと、 vrTempNewNodeにも反映されtemp_HdDocument

どうすればこの事態を防ぐことができますか?私は選択ノードは単に参照オブジェクトを作成するが、私はそれがメイン文書の一部ではなく新しいローカル変数であることを望む

htmlagilitypack c#.net 4.5 wpf

受け入れられた回答

これはデフォルトの動作であり、ほとんどの場合、非常に便利です。 HtmlNode.CopyFrom()を使用して、既存のHtmlDocumentに影響を与えずに変更できる既存のノードの独立したコピーを作成できます。次に例を示します。

var a = temp_HdDocument.SelectSingleNode("//a"));
HtmlNode temp = HtmlNode.CreateNode("<a></a>");
temp.CopyFrom(a, false);


ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ