Partager via


Créer de nouveaux attributs pour les éléments dans le DOM

La création de nouveaux attributs diffère de la création d’autres types de nœuds, car les attributs ne sont pas des nœuds. Elles sont des propriétés d’un nœud d’élément et sont contenues dans un XmlAttributeCollection associé à l’élément. Il existe plusieurs façons de créer un attribut et de l’attacher à un élément :

  • Obtenez le nœud d’élément et utilisez SetAttribute pour ajouter un attribut à la collection d’attributs de cet élément.

  • Créez un nœud XmlAttribute à l’aide de la méthode CreateAttribute , obtenez le nœud d’élément, puis utilisez SetAttributeNode pour ajouter le nœud à la collection d’attributs de cet élément.

L’exemple suivant montre comment ajouter un attribut à un élément à l’aide de la méthode 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);
    }
}

L’exemple suivant montre comment créer un attribut à l’aide de la méthode CreateAttribute . L’attribut est ensuite ajouté à la collection d’attributs de l’élément de livre à l’aide de la méthode SetAttributeNode .

Étant donné le code XML suivant :

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

Créez un attribut et donnez-lui une valeur :

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

Attachez l’attribut à l’élément :

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

Sortie

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

L’exemple de code complet est disponible à l’adresse CreateAttribute.

Si vous avez créé un XmlNamedNodeMap d’attributs, vous pouvez ajouter un attribut par nom à l’aide de la SetNamedItem méthode. Pour plus d’informations, consultez Collections de nœuds dans NamedNodeMaps et NodeLists.

Attributs par défaut

Si vous créez un élément déclaré pour avoir un attribut par défaut, un nouvel attribut par défaut avec sa valeur par défaut est créé par le modèle DOM (Document Object Model) XML et attaché à l’élément. Les nœuds enfants de l’attribut par défaut sont également créés pour l’instant.

Attribut des nœuds enfants

La valeur d’un nœud d’attribut devient ses nœuds enfants. Il n’existe que deux types de nœuds enfants valides : les nœuds XmlText et xmlEntityReference . Il s’agit de nœuds enfants dans le sens où les méthodes telles que FirstChild et LastChild les traitent en tant que nœuds enfants. Cette distinction d’un attribut ayant des nœuds enfants est importante lors de la tentative de suppression d’attributs ou de nœuds enfants d’attribut. Pour plus d’informations, consultez Suppression d’attributs d’un nœud d’élément dans le DOM.

Voir aussi