2009-09-12 15 views
19

में मौजूदा Xml स्ट्रिंग को जोड़ने के लिए XElement में मौजूदा Xml स्ट्रिंग को कैसे जोड़ें?XElement

इस कोड

 var doc = new XDocument(
      new XElement("results", "<result>...</result>") 
     ); 
निश्चित रूप से

इस

<results>&lt;result&gt;&lt;/result&gt;</results> 

पैदा करता है, लेकिन मैं इस

<results><result>...</result></results> 

कोई भी विचार की आवश्यकता है?

उत्तर

29

यह काम करना चाहिए:

var xmlString = "<result>sometext</result>"; 
var xDoc = new XDocument(new XElement("results", XElement.Parse(xmlString))); 
+0

उत्कृष्ट! मैंने कक्षा के तरीकों को नहीं देखा। आपका बहुत बहुत धन्यवाद! –

1

Is there an XElement equivalent to XmlWriter.WriteRaw?

मूलतः पर मेरा उत्तर देखें, सामग्री के लिए एक प्लेसहोल्डर की जगह केवल यदि आप जानते हैं कि यह पहले से ही मान्य XML है।

var d = new XElement(root, XML_PLACEHOLDER); 
var s = d.ToString().Replace(XML_PLACEHOLDER, child); 

इस विधि भी XElement.Parse साथ यह पार्स करने की तुलना में तेजी हो सकती है।

2

सानी सिंह Huttunen द्वारा जवाब मुझे सही रास्ते पर डाल दिया, लेकिन यह केवल परिणाम तत्व में एक परिणाम तत्व अनुमति देता है।

var xmlString = "<result>sometext</result><result>alsotext</result>"; 

System.Xml.XmlException

अनेक रूट तत्वों रहे हैं के साथ विफल रहता है।

मैं परिणाम

var xmlString = "<results><result>sometext</result><result>alsotext</result></results>"; 

तो स्ट्रिंग शाब्दिक को तत्व चलती है कि यह केवल एक ही मूल तत्व था और उसके बाद इस तरह पेरेंट तत्व को सीधे पार्स स्ट्रिंग कहा, द्वारा इस हल:

parent.Add(XElement.Parse(xmlString)); 
संबंधित मुद्दे