Vytvoření nových atributů pro elementy v dom

Vytváření nových atributů se liší od vytváření jiných typů uzlů, protože atributy nejsou uzly. Jedná se o vlastnosti uzlu elementu a jsou obsaženy v XmlAttributeCollection přidružené k elementu. Existuje několik způsobů, jak vytvořit atribut a připojit ho k elementu:

  • Získejte uzel elementu a pomocí SetAttribute přidejte atribut do kolekce atributů tohoto elementu.

  • Pomocí metody CreateAttribute vytvořte uzel XmlAttribute, získejte uzel elementu a pak pomocí SetAttributeNode přidejte uzel do kolekce atributů tohoto elementu.

Následující příklad ukazuje, jak přidat atribut do elementu pomocí SetAttribute metoda:

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);
    }
}

Následující příklad ukazuje, jak vytvořit nový atribut pomocí CreateAttribute metoda. Atribut se pak přidá do kolekce atributů elementu book pomocí SetAttributeNode metoda.

Při použití následujícího kódu XML:

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

Vytvořte nový atribut a dejte mu hodnotu:

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

Připojte atribut k elementu:

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

Výstup

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

Kompletní vzorový kód najdete na adrese CreateAttribute.

Pokud jste vytvořili XmlNamedNodeMap atributů, můžete přidat atribut podle názvu pomocí SetNamedItem metody. Další informace naleznete v tématu Kolekce uzlů v Pojmenovaný uzel Mapy a NodeLists.

Výchozí atributy

Pokud vytvoříte prvek, který je deklarován jako výchozí atribut, pak nový výchozí atribut s jeho výchozí hodnotou je vytvořen XML Document Object Model (DOM) a připojen k elementu. V tuto chvíli se také vytvoří podřízené uzly výchozího atributu.

Podřízené uzly atributu

Hodnota uzlu atributu se stane jeho podřízenými uzly. Existují pouze dva typy platných podřízených uzlů: uzly XmlText a uzly XmlEntityReference . Jedná se o podřízené uzly v tom smyslu, že metody, jako jsou FirstChild a LastChild , je zpracovávají jako podřízené uzly. Tento rozdíl atributu s podřízenými uzly je důležitý při pokusu o odebrání atributů nebo podřízených uzlů atributů. Další informace naleznete v tématu Odebrání atributů z uzlu elementu v modelu DOM.

Viz také