2008-10-08 4 views
3

두 개의 XmlDocument가 있는데 하나의 문서에서 선택한 XmlNode를 이동하여 다른 문서의 특정 위치에 추가하려고합니다.하나의 XmlDocument에서 다른 XmlDocument로 XmlNode를 이동하는 직관적 인 방법은 무엇입니까?

문서 2의 적절한 위치에서 단순히 AppendNode (xmlNodeFromDocument1)를 호출하는 단순하고 직관적 인 방법은 메서드가 소유하는 문서를 조작하지 않기 때문에 작동하지 않습니다.

나는이 질문을 글로 쓰면서 마침내 대답을 찾았지만 System.Xml 클래스에서 찾아 내기까지 오랜 시간이 걸렸으므로 다른 사람들이 검색을 수행하는 데 도움이되도록 여기에 게시했습니다. 그것을 위해.

답변

6

대상 문서와 호환되는 노드를 얻으려면 대상 문서에서 ImportNode으로 전화해야합니다. 다음 코드는 C#에서 수행되는 방법을 보여줍니다.

public void CopyExample() 
{ 

    XmlNode nodeFromDifferentDocument = SelectNodeFromSourceDocument(); 
    XmlDocument targetDocument = InitializeTargetDocument(); 
    XmlNode targetParentNode = SelectNodesParentWithinTargetDocument(targetDocument); 
    bool shouldDodeepCopy = DoIWantADeepCopy(); 

    XmlNode copyThatBelongsToTargetDocument = 
     targetDocument.ImportNode(nodeFromDifferentDocument, shouldDoDeepCopy); 
    targetParentNode.AppendChild(copyThatBelongsToTargetDocument); 

} 
관련 문제