XPathNavigator.CreateAttribute(String, String, String, String) Méthode

Définition

Crée un nœud d'attribut sur le nœud d'élément actuel à l'aide du préfixe d'espace de noms, du nom local et de l'URI d'espace de noms spécifiés avec la valeur spécifiée.

public:
 virtual void CreateAttribute(System::String ^ prefix, System::String ^ localName, System::String ^ namespaceURI, System::String ^ value);
public virtual void CreateAttribute (string prefix, string localName, string namespaceURI, string value);
public virtual void CreateAttribute (string? prefix, string localName, string? namespaceURI, string? value);
abstract member CreateAttribute : string * string * string * string -> unit
override this.CreateAttribute : string * string * string * string -> unit
Public Overridable Sub CreateAttribute (prefix As String, localName As String, namespaceURI As String, value As String)

Paramètres

prefix
String

Préfixe d'espace de noms du nouveau nœud d'attribut (le cas échéant).

localName
String

Nom local du nouveau nœud d'attribut qui ne peut pas être Empty ou null.

namespaceURI
String

URI d'espace de noms du nouveau nœud d'attribut (le cas échéant).

value
String

Valeur du nouveau nœud d'attribut. Si Empty ou null est passé, un nœud d'attribut vide est créé.

Exceptions

XPathNavigator n'est pas positionné sur un nœud d'élément.

Le XPathNavigator ne prend pas en charge la modification.

Exemples

Dans l’exemple suivant, un nouvel discount attribut est créé sur l’élément price enfant du premier book élément du contosoBooks.xml fichier.

XmlDocument^ document = gcnew XmlDocument();
document->Load("contosoBooks.xml");
XPathNavigator^ navigator = document->CreateNavigator();

navigator->MoveToChild("bookstore", "http://www.contoso.com/books");
navigator->MoveToChild("book", "http://www.contoso.com/books");
navigator->MoveToChild("price", "http://www.contoso.com/books");

navigator->CreateAttribute("", "discount", "", "1.00");

navigator->MoveToParent();
Console::WriteLine(navigator->OuterXml);
XmlDocument document = new XmlDocument();
document.Load("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

navigator.MoveToChild("bookstore", "http://www.contoso.com/books");
navigator.MoveToChild("book", "http://www.contoso.com/books");
navigator.MoveToChild("price", "http://www.contoso.com/books");

navigator.CreateAttribute("", "discount", "", "1.00");

navigator.MoveToParent();
Console.WriteLine(navigator.OuterXml);
Dim document As XmlDocument = New XmlDocument()
document.Load("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

navigator.MoveToChild("bookstore", "http://www.contoso.com/books")
navigator.MoveToChild("book", "http://www.contoso.com/books")
navigator.MoveToChild("price", "http://www.contoso.com/books")

navigator.CreateAttribute("", "discount", "", "1.00")

navigator.MoveToParent()
Console.WriteLine(navigator.OuterXml)

L'exemple prend le fichier contosoBooks.xml comme entrée.

<?xml version="1.0" encoding="utf-8" ?>  
<bookstore xmlns="http://www.contoso.com/books">  
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">  
        <title>The Autobiography of Benjamin Franklin</title>  
        <author>  
            <first-name>Benjamin</first-name>  
            <last-name>Franklin</last-name>  
        </author>  
        <price>8.99</price>  
    </book>  
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">  
        <title>The Confidence Man</title>  
        <author>  
            <first-name>Herman</first-name>  
            <last-name>Melville</last-name>  
        </author>  
        <price>11.99</price>  
    </book>  
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">  
        <title>The Gorgias</title>  
        <author>  
            <name>Plato</name>  
        </author>  
        <price>9.99</price>  
    </book>  
</bookstore>  

Remarques

Les valeurs de préfixe et d’URI de l’espace de noms peuvent être obtenues à l’aide de la LookupPrefix méthode ou LookupNamespace . Par exemple, la syntaxe suivante crée un attribut à l’aide de l’espace de noms xmlns:bk="http://www.contoso.com/books"dans l’étendue :

editor.CreateAttribute(navigator.Prefix, "attributeName", LookupNamespace(navigator.Prefix), "text")  

Cela crée l’attribut <bk:element attributeName="text"/> sur l’élément actuel.

Voici les remarques importantes à prendre en compte lors de l’utilisation de la CreateAttribute méthode .

  • Si le préfixe d’espace de noms spécifié est String.Empty ou null, le préfixe de l’URI d’espace de noms du nouvel attribut est obtenu à partir des espaces de noms actuels dans l’étendue. Si aucun préfixe d’espace de noms n’est affecté à l’URI d’espace de noms spécifié au niveau de l’étendue actuelle, un préfixe d’espace de noms est généré automatiquement. Par exemple, pour créer un attribut sur un élément dans l’espace de noms par défaut du contosoBooks.xml fichier (xmlns="http://www.contoso.com/books"), vous spécifiez null ou String.Empty pour les paramètres de préfixe d’espace de noms et d’URI d’espace de noms. Si vous spécifiez comme paramètre d’URI d’espace de http://www.contoso.com/books noms, la CreateAttribute méthode génère automatiquement un préfixe d’espace de noms pour le nouvel attribut.

  • Si le nouvel attribut créé est un nœud d’espace de noms qui est en conflit avec une déclaration d’espace de noms sur l’élément, soit parce que le préfixe d’espace de noms choisi est utilisé par une autre déclaration d’espace de noms dans la même étendue, soit parce que le préfixe choisi est le même que celui de l’élément, mais qu’il est lié à un URI d’espace de noms différent, une exception est levée.

  • La CreateAttribute méthode n’affecte pas la position du XPathNavigator.

S’applique à