Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La clase XmlNode permite cambiar el prefijo de espacio de nombres asociado a un nodo determinado. Por ejemplo, el código siguiente muestra el prefijo de un elemento que se va a cambiar.
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);
Salida
<b:test xmlns:a="123" xmlns:b="456" />
Cambiar el prefijo de un nodo no cambia su espacio de nombres. El espacio de nombres solo puede establecerse al crear el nodo. Al mantener el árbol, los nuevos atributos de espacio de nombres se pueden mantener de modo que se ajusten al prefijo establecido. Si no se puede crear el nuevo espacio de nombres, el prefijo se cambia para que el nodo conserve su nombre local y su espacio de nombres. En el ejemplo siguiente se muestra un atributo de espacio de nombres que se va a agregar.
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);
Salida
<a:test xmlns="123" xmlns:a="123" />
Cuando el árbol se mantuvo en una cadena como resultado de la llamada a doc.InnerXml, el atributo xmlns:a='123' se agregó para conservar el espacio de nombres del elemento test. Era '123' y sigue siendo '123'.