2010-08-04 16 views
12

में XmlDocument का उपयोग कर एक्सएमएल में विशेषताओं को जोड़ने के लिए मुझे तत्व "aaa" के लिए उपसर्ग "xx" के साथ "abc" विशेषता बनाने की आवश्यकता है। निम्न कोड उपसर्ग जोड़ता है लेकिन यह तत्व में नामस्थान Uri भी जोड़ता है।सी # .net सीएफ 3.5

आवश्यक आउटपुट:

<mybody> 
<aaa xx:abc="ddd"/> 
<mybody/> 

मेरे कोड:

XmlNode node = doc.SelectSingleNode("//mybody"); 
    XmlElement ele = doc.CreateElement("aaa"); 

    XmlAttribute newAttribute = doc.CreateAttribute("xx","abc",namespace);    
    newAttribute.Value = "ddd"; 

    ele.Attributes.Append(newAttribute); 

    node.InsertBefore(ele, node.LastChild); 

ऊपर कोड उत्पन्न करता है:

<mybody> 
<aaa xx:abc="ddd" xmlns:xx="http://www.w3.org/1999/XSL/Transform"/> 
<mybody/> 

वांछित उत्पादन

<mybody> 
<aaa xx:abc="ddd"/> 
<mybody/> 
है

और "xx" विशेषता की घोषणा की तरह रूट नोड में किया जाना चाहिए:

<ns:somexml xx:xsi="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://x.y.z.com/Protocol/v1.0"> 

कैसे करता है, तो deisred प्रारूप में उत्पादन प्राप्त कर सकते हैं? यदि एक्सएमएल इस वांछित प्रारूप में नहीं है तो इसे अब संसाधित नहीं किया जा सकता है ..

क्या कोई मदद कर सकता है?

धन्यवाद, विक्की

उत्तर

32

मेरा मानना ​​है कि यह सिर्फ रूट नोड पर सीधे प्रासंगिक विशेषता सेटिंग की बात है। यहां एक नमूना कार्यक्रम है:

using System; 
using System.Globalization; 
using System.Xml; 

class Test 
{ 
    static void Main() 
    { 
     XmlDocument doc = new XmlDocument(); 
     XmlElement root = doc.CreateElement("root"); 

     string ns = "http://sample/namespace"; 
     XmlAttribute nsAttribute = doc.CreateAttribute("xmlns", "xx", 
      "http://www.w3.org/2000/xmlns/"); 
     nsAttribute.Value = ns; 
     root.Attributes.Append(nsAttribute); 

     doc.AppendChild(root); 
     XmlElement child = doc.CreateElement("child"); 
     root.AppendChild(child); 
     XmlAttribute newAttribute = doc.CreateAttribute("xx","abc", ns); 
     newAttribute.Value = "ddd";   
     child.Attributes.Append(newAttribute); 

     doc.Save(Console.Out); 
    } 
} 

आउटपुट:

<?xml version="1.0" encoding="ibm850"?> 
<root xmlns:xx="http://sample/namespace"> 
    <child xx:abc="ddd" /> 
</root>