2009-03-11 8 views

उत्तर

13

एक XmlDocument मूल रूप से एक XmlNode है, तो आप यह सिर्फ आप किसी भी अन्य XmlNode के लिए क्या करना होगा की तरह जोड़ सकते हैं। हालांकि, इस तथ्य से अंतर उत्पन्न होता है कि यहXmlNode लक्ष्य दस्तावेज़ से संबंधित नहीं है, इसलिए आपको आयात नोड विधि और फिर संलग्न करने की आवश्यकता होगी।

// 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

हां, ऐसा लगता है कि आपको वास्तव में आयात नोड को कॉल करने की आवश्यकता है, लेकिन वह * एक्सएमएल दस्तावेज़ की प्रतिलिपि बनायेगी ..... –

5

हाँ:

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

मैं इस अपने दस्तावेज़ का क्लोन पैदा करता है, हालांकि लगता है।

0

एक बार जब आप XML दस्तावेज़ के रूट नोड को प्रश्न में रखते हैं तो आप इसे प्रश्न में नोड के बच्चे नोड के रूप में जोड़ सकते हैं। क्या इसका कोई मतलब है?

1

मान लीजिए कि आप निम्नलिखित निर्माण करते हैं:

निम्नलिखित संरचना एक XmlElement नामित XmlElement में संग्रहीत है:

</root> 

और निम्नलिखित संरचना एक XmlNode वस्तु नामित FooNode में संग्रहित है ;

<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); 

आशा है कि यह मदद करता है किसी को

संबंधित मुद्दे