Come aggiungere attributi a xml utilizzando XmlDocument in c # .net CF 3.5

Devo creare un attributo “abc” con il prefisso “xx” per un elemento “aaa”. Il codice seguente aggiunge il prefisso ma aggiunge anche lo spazio dei nomiUri all’elemento.

Uscita richiesta:

   

Il mio codice:

  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); 

Il codice precedente genera:

    

L’output desiderato è

    

E la dichiarazione dell’attributo “xx” dovrebbe essere fatta nel nodo radice come:

  

Come si può ottenere l’output nel formato deisred? Se l’xml non è nel formato desiderato, non può più essere elaborato.

Qualcuno può aiutare?

Grazie, Vicky

Credo che sia solo questione di impostare l’attributo rilevante direttamente sul nodo radice. Ecco un programma di esempio:

 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); } } 

Produzione:

 < ?xml version="1.0" encoding="ibm850"?>