Aller au contenu principal
Version: Next

DOM Insert XML element

DOM Insert XML element ( refElémentCible ; refElémentSource ; indexEnfant ) : Text

ParamètreTypeDescription
refElémentCibleTextRéférence de l’élément XML parent
refElémentSourceTextRéférence de l’élément XML à insérer
indexEnfantIntegerIndex de l’enfant de l’élément cible avant lequel le nouvel élément doit être inséré
RésultatTextRéférence du nouvel élément XML

Description

La commande DOM Insert XML element permet d’insérer un nouvel élément XML parmi les enfants de l’élément XML dont la référence est passée dans le paramètre refElémentCible.

Passez dans refElémentSource l’élément à insérer. Cet élément doit être passé en tant que référence d’un élément XML existant dans un arbre DOM.

Le paramètre indexEnfant permet de désigner l’enfant de l’élément parent avant lequel le nouvel élément doit être inséré. Passez un numéro d’index dans ce paramètre. Si la valeur est invalide (par exemple s’il n’existe pas d’élément enfant de cet index), le nouvel élément sera ajouté avant le premier enfant de l’élément parent.

La commande retourne la référence de l’élément XML obtenu.

Exemple

Dans la structure suivante, nous souhaitons inverser le premier et le deuxième livre :

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<BookCatalog>
  <Book>
          <Title>Services Web Open Source</Title>
          <Author>Collectif</Author>
          <Date>2003</Date>
          <ISBN>2-7440-1507-5</ISBN>
          <Publisher>Wrox</Publisher>
    </Book>
<Book>
          <Title>Construire des services Web XML</Title>
          <Author>Scott Short</Author>
          <Date>2002</Date>
          <ISBN>2-10-006476-2</ISBN>
          <Publisher>Microsoft Press</Publisher>
    </Book>
</BookCatalog>

Pour cela, il suffit d’exécuter le code suivant :

 var $refRoot : Text
 $refRoot:=DOM Parse XML source("") //sélection du document XML
 If(OK=1)
    var $newStruct : Text
    $newStruct:=DOM Create XML Ref("BookCatalog")
 
    $refBook:=DOM Find XML element($refRoot;"/BookCatalog/Book[1]")
    $refNewElement:=DOM Append XML element($newStruct;$refBook)
 
    $refBook:=DOM Find XML element($refRoot;"/BookCatalog/Book[2]")
    var $refNewElement : Text
    $refNewElement:=DOM Insert XML element($newStruct;$refBook;1)
 
    DOM CLOSE XML($newStruct)
    DOM CLOSE XML($refRoot)
 End if

Voir aussi

DOM Append XML element