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

Définition

Crée un élément frère avant le nœud 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.

C#
public virtual void InsertElementBefore (string prefix, string localName, string namespaceURI, string value);
C#
public virtual void InsertElementBefore (string? prefix, string localName, string? namespaceURI, string? value);

Paramètres

prefix
String

Préfixe d'espace de noms du nouvel élément enfant (le cas échéant).

localName
String

Nom local du nouvel élément enfant (le cas échéant).

namespaceURI
String

URI de l'espace de noms du nouvel élément enfant (le cas échéant). Empty et null sont équivalents.

value
String

Valeur du nouvel élément enfant. Si Empty ou null sont passés, une élément vide est créé

Exceptions

La position du XPathNavigator n’autorise pas l’insertion d’un nœud frère avant le nœud actuel.

Le XPathNavigator ne prend pas en charge la modification.

Exemples

Dans l'exemple suivant, un nouvel élément pages est inséré avant l'élément price enfant du premier élément book du fichier contosoBooks.xml.

C#
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.InsertElementBefore(navigator.Prefix, "pages", navigator.LookupNamespace(navigator.Prefix), "100");

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

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

XML
<?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

Le préfixe d’espace de noms et les valeurs d’URI peuvent être obtenus à l’aide de la LookupPrefix méthode ou LookupNamespace . Par exemple, la syntaxe suivante insère un élément frère à l’aide de l’espace de noms xmlns:bk="http://www.contoso.com/books"dans l’étendue :

C#
navigator.InsertElementBefore(navigator.Prefix, "pages", LookupNamespaceURI(navigator.Prefix), String.Empty)  

Cela crée le nouvel élément frère <bk:pages/> .

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

  • Si le préfixe d’espace de noms spécifié est null ou String.Empty, le préfixe de l’URI d’espace de noms du nouvel élément 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é dans l’étendue actuelle, un préfixe d’espace de noms est généré automatiquement.

  • La InsertElementBefore méthode n’est valide que lorsque le XPathNavigator est positionné sur un élément, du texte, une instruction de traitement ou un nœud de commentaire.

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

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1