किसी कारण निम्न कोड एक्सएमएल पैदा करता है कि एक घोषणा शामिल नहीं है के लिए:मेरा एक्सडेक्लेरेशन कहां है?
XDocument xDocument = new XDocument(new XDeclaration("1.0", "utf-8", "yes"),
new XElement("project",
new XAttribute("number", project.ProjectNumber),
new XElement("store",
new XAttribute("number", project.StoreNumber)
),
// User Element
new XElement("user",
new XAttribute("owner-id", project.OwnerID ?? 0),
new XElement("email", new XCData(project.OwnerEmail ?? "")),
new XElement("project-name", new XCData(project.ProjectName ?? ""))
),
// Nested Project Element
new XElement("nested-project",
new XAttribute("version", new Version(1, 0)),
new XElement("project",
new XAttribute("version", new Version(1, 0)),
xProjectItems = new XElement("project-items")
),
new XElement("price-per-part", project.PricePerPart),
new XElement("sheet-quantity", project.SheetQuantity),
new XElement("edge-length", project.EdgeLength),
new XElement("price", project.Price),
new XElement("status", project.Status),
xMaterialItems = new XElement("alternative-material-items"),
xProductItems = new XElement("project-product-items")
)
)
);
String strXML = xDocument.ToString();
यह पहले एक घोषणा का उत्पादन किया गया। क्या मुझसे साफ़ - साफ़ कुछ चीज़ चूक रही है?
धन्यवाद।
+1 मुझे अपने उत्तर में एक स्ट्रिंगवाइटर का उपयोग करना चाहिए था। रवींद्र! =] – rsbarro
वह लंगड़ा है। आपका समाधान नहीं है (जो बहुत अच्छा है - मुझे नहीं पता था कि आप इसे 'स्ट्रिंगवाइटर' के साथ कर सकते हैं)। इसकी लंगड़ा कि माइक्रोसॉफ्ट ऐसा करेगा। मैं इस एक्सएमएल को फाइल में नहीं सहेज रहा हूं, मैं इसे स्ट्रीम में भेज रहा हूं। 'एक्सडॉक्यूमेंट' और 'एक्सलेमेंट' के बीच क्या अंतर है। मेरा मतलब यह अच्छा है कि वे एक जैसे हैं, लेकिन कुछ भेद होना चाहिए। और यदि कोई स्ट्रिंग में घोषणा नहीं चाहता है तो आप बस ऐसा कर सकते हैं: 'xMyDocument.Root.ToString();' – Jordan
@ जोर्डन मुझे लगता है कि तर्क यह है कि एक एक्सडॉक्यूमेंट एक संपूर्ण दस्तावेज़ का प्रतिनिधित्व करता है, और XElement एक टुकड़ा है एक्सएमएल का इसके बावजूद, वे बहुत समान हैं। –