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. Nel codice seguente, ad esempio, viene mostrata la modifica del prefisso di un elemento.

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)
[C#]
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);

Output

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

La modifica del prefisso di un nodo non comporta cambiamenti dello spazio dei nomi. Lo spazio dei nomi può essere impostato solo alla creazione del nodo. Quando si mantiene fissa la struttura, i nuovi attributi dello spazio dei nomi possono essere mantenuti fissi 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 che segue viene illustrato come aggiungere 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)
[C#]
XmlDocument doc = new XmlDocument();
doc.LoadXml("<test xmlns='123'/>");
XmlElement e = doc.DocumentElement;       
e.Prefix = "a";
Console.WriteLine(doc.InnerXml);

Output

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

Dal momento che la struttura era rimasta fissa su 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', ed è rimasto '123'.

Vedere anche

Modello a oggetti di documenti XML (Document Object Model, DOM)