XPathNavigator.CreateAttributes Méthode

Définition

Retourne un objet utilisé pour créer de XmlWriter nouveaux attributs sur l’élément actuel.

public:
 virtual System::Xml::XmlWriter ^ CreateAttributes();
public virtual System.Xml.XmlWriter CreateAttributes();
abstract member CreateAttributes : unit -> System.Xml.XmlWriter
override this.CreateAttributes : unit -> System.Xml.XmlWriter
Public Overridable Function CreateAttributes () As XmlWriter

Retours

Objet utilisé pour créer de XmlWriter nouveaux attributs sur l’élément actuel.

Exceptions

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

La XPathNavigator modification ne prend pas en charge la modification.

Exemples

Dans l’exemple suivant, de nouveaux attributs discount sont créés currency sur l’élément enfant price du premier élément book dans le fichier contosoBooks.xml à l’aide de l’objet XmlWriter renvoyé par la méthode CreateAttributes.

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

XmlWriter attributes = navigator.CreateAttributes();

attributes.WriteAttributeString("discount", "1.00");
attributes.WriteAttributeString("currency", "USD");
attributes.Close();

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")

Dim attributes As XmlWriter = navigator.CreateAttributes()

attributes.WriteAttributeString("discount", "1.00")
attributes.WriteAttributeString("currency", "USD")
attributes.Close()

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

L’exemple prend le contosoBooks.xml fichier en tant qu’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 remarques suivantes sont importantes à prendre en compte lors de l’utilisation de la CreateAttributes méthode.

  • Lorsque le XPathNavigator paramètre est positionné sur un élément, les nouveaux attributs créés par la XPathNavigator méthode sont placés à la fin de la liste d’attributs de l’élément actif.

  • Les nouveaux attributs ne sont pas insérés tant que la Close méthode de l’objet XmlWriter n’est pas appelée.

  • 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. S’il n’existe aucun préfixe d’espace de noms affecté à l’URI d’espace de noms spécifié dans 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 d’URI d’espace de noms et de préfixe d’espace de noms. La spécification http://www.contoso.com/books en tant que paramètre URI d’espace de noms entraîne la CreateAttribute génération automatique d’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 identique à celui de l’élément, mais est lié à un URI d’espace de noms différent, une exception est levée.

  • L’objet XmlWriter retourné peut uniquement être utilisé pour créer des attributs. L’appel d’autres méthodes d’objet XmlWriter qui ne créent pas d’attributs lève une exception.

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

S’applique à