2009-03-11 6 views

답변

13

당신이 당신이 다른 XmlNode을 위해 할 것 같은 추가 할 수 있도록 XmlDocumentXmlNode 기본적으로 인. 그러나 차이점은 XmlNode이 대상 문서에 속하지 않으므로 ImportNode 메서드 을 사용한 다음 추가를 수행해야합니다 ().

// xImportDoc is the XmlDocument to be imported. 
// xTargetNode is the XmlNode into which the import is to be done. 

XmlNode xChildNode = xSrcNode.ImportNode(xImportDoc, true); 
xTargetNode.AppendChild(xChildNode); 
+2

아 그래,하지만 xSrcNode는 무엇입니까? 왜 '문서'유형의 노드를 가져올 수 없습니까?라는 오류 메시지가 나타납니다. xTargetNode 유형은 무엇입니까? – fijiaaron

+2

@fijiaaron 문서에서 루트 요소를 선택해야합니다. 'XmlNode xChildNode = xSrcNode.ImportNode (xImportDoc.DocumentElement, true);' – nmat

+0

XmlDoc이 현재 XmlNode로 입력되었거나 XmlNode 대신 'XmlNode xChildNode = xSrcNode.ImportNode (xImportDoc.OwnerDocument.DocumentElement, true);'를 할 수 있습니다. –

1

:

XmlNode node = ...... // belongs to targetDoc (XmlDocument) 

node.AppendChild(targetDoc.ImportNode(xmlDoc.DocumentElement)); 

마크

+0

AFAIK 희망이 도움, 당신은 ** 가져 오기 * 그 전에 현재을 XmlDocument에 노드 속하지 않는하는 경우 필요 추가 할 수 있습니다. 내 대답을 보라. – Cerebrus

+0

예, 실제로 ImportNode를 호출해야하지만 XML 문서의 사본을 만들 것입니다 ..... –

5

예 :

XmlNode imported = targetNode.OwnerDocument.ImportNode(otherDocument.DocumentElement, true); 
targetNode.AppendChild(imported); 

나는이 비록 문서의 복제본을 만듭니다 생각합니다.

0

문제의 XML 문서의 루트 노드가 있으면 문제의 노드의 자식 노드로 추가 할 수 있습니다. 말이 돼?

1

의는 다음과 같은 구성 있다고 가정 해 봅시다 : XMLNode 객체라는 이름의 FooNode에 저장됩니다

</root> 

다음과 같은 구조 : 다음과 같은 구조가 XMLELEMENT 이름 XMLELEMENT에 저장됩니다

을 ; 당신이 다음을 수행 그런

<foo> 
    <bar>This is a test</bar> 
    <baz>And this is another test</baz> 
</foo> 

:

XmlNode node = doc.ImportNode(FooNode.SelectSingleNode("foo"), true); 
xmlElement.AppendChild(node); 

이 누군가

관련 문제