2013-01-12 16 views
5

पर नामस्थान जोड़ना मुझे लिंक से xml का उपयोग करके कुछ एक्सएमएल फाइलों में हेरफेर करने की आवश्यकता है।मौजूदा XDocument

मैं एक मौजूदा XDocument कि मैं लोड

अब मैं इसे करने के लिए एक नाम स्थान जोड़ने के लिए सक्षम होने के लिए नहीं कर पा रहे है।

मुझे क्या करना:

//Load an existing xml into a XDocument 
XDocument xdoc=XDocument.Load(myXml); 

//Create a namespace 
XNamespace myNS="http://www.w3.org/2001/XMLSchema-instance/MyShinyNewNamespace"; 
xAttribute myAttr=new XAttribute(XNamespace.Xmlns +"myNS",myNS); 

    //Add new namepsace to root 

xdoc.Root ???? 

What do you do here? 

मैं अपने नाम स्थान कैसे पुनः प्राप्त करते हैं?

मैं कैसे निकालें/बदलें?

बहुत धन्यवाद

उत्तर

14

सबसे पहले, जबकि XML मार्कअप आप घोषित नेम स्पेस में

<root xmlns="http://example.com/ns"> 
    <foo> 
    <bar>baz</bar> 
    </foo> 
</root> 

उपयोग करने के लिए एक भी नाम स्थान घोषणा विशेषता का उपयोग करने मूल तत्व डाल करने के लिए उन लोगों के वंशज तत्व के रूप में रूप में अच्छी तरह की अनुमति देता है , जब आप पेड़ मॉडल में हेरफेर करते हैं तो आपको सभी तत्वों के Name को बदलने की आवश्यकता होती है, इसलिए आपको आवश्यकता है

XNamespace myNs = "http://example.com/ns"; 

foreach (XElement el in xdoc.Descendants()) 
{ 
    el.Name = myNs + el.Name.LocalName; 
} 

तुम भी तो एक निश्चित उपसर्ग pf सेट करना चाहते हैं addionally

xdoc.Root.Add(new XAttribute(XNamespace.Xmlns + "pf", myNs)); 
संबंधित मुद्दे