예를 들어 노드를 선택합니다.
HtmlDocument temp_HdDocument = new HtmlDocument();
temp_HdDocument.LoadHtml(mysource);
var vrTempNewNode = temp_HdDocument.SelectSingleNode("//a"));
나는이 방식으로 노드를 바꾼다.
foreach (HtmlNode node in vrTempNewNode.SelectNodes("*"))
{
node.Remove();
}
지금은 아무 변화 할 때 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);