Partilhar via


Criar novos atributos para elementos no DOM

Criar novos atributos é diferente de criar outros tipos de nós, porque os atributos não são nós. Eles são propriedades de um nó de elemento e estão contidos em um XmlAttributeCollection associado ao elemento . Há várias maneiras de criar um atributo e anexá-lo a um elemento:

  • Obtenha o nó do elemento e use SetAttribute para adicionar um atributo à coleção de atributos desse elemento.

  • Crie um nó XmlAttribute usando o método CreateAttribute , obtenha o nó do elemento e use SetAttributeNode para adicionar o nó à coleção de atributos desse elemento.

O exemplo a seguir mostra como adicionar um atributo a um elemento usando o 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);
    }
}

O exemplo a seguir mostra como criar um novo atributo usando o método CreateAttribute . O atributo é então adicionado à coleção de atributos do elemento book usando o método SetAttributeNode .

Dado o seguinte XML:

<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>

Crie um novo atributo e atribua-lhe um valor:

Dim attr As XmlAttribute = doc.CreateAttribute("publisher")
attr.Value = "WorldWide Publishing"
XmlAttribute attr = doc.CreateAttribute("publisher");
attr.Value = "WorldWide Publishing";

Anexe o atributo ao elemento :

doc.DocumentElement.SetAttributeNode(attr)
doc.DocumentElement.SetAttributeNode(attr);

Saída

<book genre="novel" ISBN="1-861001-57-5" publisher="WorldWide Publishing">
<title>Pride And Prejudice</title>
</book>

O exemplo de código completo pode ser encontrado em CreateAttribute.

Se você criou um XmlNamedNodeMap de atributos, você pode adicionar um atributo por nome usando o SetNamedItem método. Para obter mais informações, consulte Coleções de nós em NamedNodeMaps e NodeLists.

Atributos padrão

Se você criar um elemento declarado como tendo um atributo padrão, um novo atributo padrão com seu valor padrão será criado pelo DOM (Document Object Model) XML e anexado ao elemento. Os nós filho do atributo padrão também são criados neste momento.

Atribuir nós filho

O valor de um nó de atributo torna-se seus nós filho. Há apenas dois tipos de nós filho válidos: nós XmlText e nós XmlEntityReference . Estes são nós filho no sentido de que métodos como FirstChild e LastChild os processam como nós filho. Essa distinção de um atributo com nós filho é importante ao tentar remover atributos ou nós filho de atributo. Para obter mais informações, consulte Removendo atributos de um nó de elemento no DOM.

Consulte também