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.