2009-12-21 15 views
30

को XElement कन्वर्ट मैं एक साधारण XElement वस्तुस्ट्रिंग

XElement xml = new XElement("XML", 
    new XElement ("TOKEN",Session["Token"]), 
    new XElement("ALL_INCLUSIVE", "0"), 
    new XElement("BEACH", "0"), 
    new XElement("DEST_DEP", ddlDest.SelectedValue.ToString()), 
    new XElement("FLEX", "0") 
); 

कहाँ एक स्ट्रिंग में सामग्री बाहर डंप करना चाहते हैं। बिल्कुल Console.Writeline(xml); कैसे करता है, लेकिन मैं स्ट्रिंग में सामग्री चाहता हूं। मैंने विभिन्न मेथॉन्ड की कोशिश की। xml.ToString(); अपने आप पर कुछ भी वापस नहीं करता है।

उत्तर

42

ToString सबसे निश्चित रूप से काम करना चाहिए। मैं इसका हर समय उपयोग करता हूं। इस मामले में यह आपके लिए क्या लौटता है? एक खाली स्ट्रिंग? मेरा अनुमान है कि आपके XElement को गलत बनाने में कुछ गड़बड़ हुई। डिबग करने के लिए, प्रत्येक बच्चे XElements को अलग से जोड़ने के लिए कोड को फिर से लिखें, ताकि आप अपने कोड से कदम उठा सकें और उनमें से प्रत्येक को जांच सकें। फिर। लोकल विंडो में। ToString निष्पादित करने से पहले, [xml] चर को xml में विस्तारित करें।

संक्षेप में, आपकी समस्या कभी भी ToString() विधि तक पहुंचने से पहले हो रही है।

5

ToString काम करता है, लेकिन यह XElement टैग सहित सामग्री लौटाता है।

public static class XElementExtension 
{ 
    public static string InnerXML(this XElement el) { 
     var reader = el.CreateReader(); 
     reader.MoveToContent(); 
     return reader.ReadInnerXml(); 
    } 
} 

फिर सरल यह कॉल: xml.InnerXML();

आप रूट टैग ("" अपने उदाहरण में) के बिना इनर एक्सएमएल के लिए की जरूरत है, तो आप निम्न विस्तार विधि का उपयोग कर सकते हैं