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 creación de nuevos atributos es diferente de crear otros tipos de nodo, ya que los atributos no son nodos. Son propiedades de un nodo de elemento y se encuentran en una clase XmlAttributeCollection asociada al elemento . Hay varias maneras de crear un atributo y adjuntarlo a un elemento:
Obtenga el nodo de elemento y use SetAttribute para agregar un atributo a la colección de atributos de ese elemento.
Cree un nodo XmlAttribute mediante el método CreateAttribute , obtenga el nodo de elemento y, a continuación, use SetAttributeNode para agregar el nodo a la colección de atributos de ese elemento.
En el ejemplo siguiente se muestra cómo agregar un atributo a un elemento mediante el método SetAttribute :
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
Dim doc As New XmlDocument()
doc.LoadXml("<book xmlns:bk='urn:samples' bk:ISBN='1-861001-57-5'>" & _
"<title>Pride And Prejudice</title>" & _
"</book>")
Dim root As XmlElement = doc.DocumentElement
' Add a new attribute.
root.SetAttribute("genre", "urn:samples", "novel")
Console.WriteLine("Display the modified XML...")
Console.WriteLine(doc.InnerXml)
End Sub
End Class
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
var doc = new XmlDocument();
doc.LoadXml("<book xmlns:bk='urn:samples' bk:ISBN='1-861001-57-5'>" +
"<title>Pride And Prejudice</title>" +
"</book>");
XmlElement root = doc.DocumentElement;
// Add a new attribute.
root.SetAttribute("genre", "urn:samples", "novel");
Console.WriteLine("Display the modified XML...");
Console.WriteLine(doc.InnerXml);
}
}
En el ejemplo siguiente se muestra cómo crear un nuevo atributo mediante el método CreateAttribute . A continuación, el atributo se agrega a la colección de atributos del elemento book mediante el método SetAttributeNode .
Dado el siguiente XML:
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
Cree un nuevo atributo y asígnele un valor:
Dim attr As XmlAttribute = doc.CreateAttribute("publisher")
attr.Value = "WorldWide Publishing"
XmlAttribute attr = doc.CreateAttribute("publisher");
attr.Value = "WorldWide Publishing";
Adjunte el atributo al elemento :
doc.DocumentElement.SetAttributeNode(attr)
doc.DocumentElement.SetAttributeNode(attr);
Salida
<book genre="novel" ISBN="1-861001-57-5" publisher="WorldWide Publishing">
<title>Pride And Prejudice</title>
</book>
El ejemplo de código completo se puede encontrar en CreateAttribute.
Si creó un xmlNamedNodeMap de atributos, puede agregar un atributo por nombre mediante el SetNamedItem método . Para obtener más información, vea Colecciones de nodos en NamedNodeMaps y NodeLists.
Atributos predeterminados
Si crea un elemento que se declara para tener un atributo predeterminado, el modelo de objetos de documento XML (DOM) crea un nuevo atributo predeterminado con su valor predeterminado y se adjunta al elemento . Los nodos secundarios del atributo predeterminado también se crean en este momento.
Nodos secundarios de atributo
El valor de un nodo de atributo se convierte en sus nodos secundarios. Solo hay dos tipos de nodos secundarios válidos: nodos XmlText y Nodos XmlEntityReference . Estos son nodos secundarios en el sentido de que los métodos como FirstChild y LastChild los procesan como nodos secundarios. Esta distinción de un atributo que tiene nodos hijos es importante al intentar eliminar atributos o nodos hijos de un atributo. Para obtener más información, vea Quitar atributos de un nodo de elemento en dom.