Modifica delle proprietà del prefisso dello spazio dei nomi

La classe XmlNode consente di modificare il prefisso dello spazio dei nomi associato a un determinato nodo. Ad esempio, il codice seguente mostra il prefisso di un elemento da modificare.

Dim doc as XmlDocument = new XmlDocument()  
doc.LoadXml("<a:test xmlns:a='123' xmlns:b='456'/>")  
Dim e as XmlElement = doc.DocumentElement  
e.Prefix = "b"  
Console.WriteLine(doc.InnerXml)  
XmlDocument doc = new XmlDocument();  
doc.LoadXml("<a:test xmlns:a='123' xmlns:b='456'/>");  
XmlElement e = doc.DocumentElement;
e.Prefix = "b";  
Console.WriteLine(doc.InnerXml);  

Risultato

<b:test xmlns:a="123" xmlns:b="456" />  

La modifica del prefisso di un nodo non modifica lo spazio dei nomi. Il namespace può essere impostato solo al momento della creazione del nodo. Quando si rende permanente l'albero, i nuovi attributi del namespace possono essere memorizzati per soddisfare il prefisso impostato. Se non è possibile creare il nuovo spazio dei nomi, il prefisso viene modificato in modo che il nodo mantenga il nome locale e lo spazio dei nomi. Nell'esempio seguente viene illustrato l'aggiunta di un attributo dello spazio dei nomi.

Dim doc as XmlDocument = new XmlDocument()  
doc.LoadXml("<test xmlns='123'/>")  
Dim e as XmlElement = doc.DocumentElement  
e.Prefix = "a"  
Console.WriteLine(doc.InnerXml)  
XmlDocument doc = new XmlDocument();  
doc.LoadXml("<test xmlns='123'/>");  
XmlElement e = doc.DocumentElement;
e.Prefix = "a";  
Console.WriteLine(doc.InnerXml);  

Risultato

<a:test xmlns="123" xmlns:a="123" />  

Quando l'albero è stato salvato in modo permanente in una stringa in seguito alla chiamata a doc. InnerXml, l'attributo xmlns:a='123' è stato aggiunto per mantenere lo spazio dei nomi dell'elemento test . Era '123', e rimase '123'.

Vedere anche