/ / नामस्थान के साथ XElement कैसे बनाएं - c #, xml, xml-namespaces, xelement

नेमस्पेस के साथ XElement कैसे बनाएं - सी #, एक्सएमएल, एक्सएमएल-नेमस्पेस, एक्सलेमेंट

मुझे इस तरह से xml उत्पन्न करने की आवश्यकता है:

<urlset xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"  xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://blabla</loc>
<video:video>
<video:player allow_embed="yes">http://blablabla</video:player_loc>
</video:video>
</url>

मैं नामस्थान के साथ काम करने का तरीका पता लगा सकता हूं। मैं "टी" भी बना सकता हूं urlset तत्व ठीक से, मैं कोशिश कर रहा हूँ:

 XNamespace _defaultNamespace = "http://www.sitemaps.org/schemas/sitemap/0.9";
XNamespace _videoNameSpace = "http://www.google.com/schemas/sitemap-video/1.1";

new XElement("urlset",new XAttribute(_defaultNamespace+"video",_defaultNamespace))

और यह उत्पन्न करता है:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset p1:video="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:p1="http://www.sitemaps.org/schemas/sitemap/0.9">

वह क्या है p1 चीज़?

उत्तर:

जवाब के लिए 3 № 1

नामस्थान विशेषताएँ xmlns नाम स्थान में हैं, इसलिए आपको उपयोग करना चाहिए XNamespace.Xmlns+ attributeName नेमस्पेस घोषित करने के लिए:

XNamespace ns = "http://www.sitemaps.org/schemas/sitemap/0.9";
XNamespace video = "http://www.google.com/schemas/sitemap-video/1.1";
var urlset = new XElement(ns + "urlset",
new XAttribute(XNamespace.Xmlns + "video", video));

का उत्पादन

<urlset xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" />

पूर्ण xml पीढ़ी की तरह दिखेगा:

var urlset = new XElement(ns + "urlset",
new XAttribute(XNamespace.Xmlns + "video", video),
new XElement(ns + "url",
new XElement(ns + "loc", "http:/blabla"),
new XElement(video + "video",
new XElement(video + "player",
new XAttribute("allow_embed", "yes"),
"http:/blabla"))));