Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20 R7
DOM Chercher element XML

DOM Chercher element XML 


 

DOM Chercher element XML ( refElément ; xPath {; tabRefEléments} ) -> Résultat 
Paramètre Type   Description
refElément  Chaîne in Référence d’élément XML
xPath  Texte in Chemin XPath de l’élément à chercher
tabRefEléments  Tableau chaîne in Liste des références d’éléments trouvés (le cas échéant)
Résultat  Chaîne in Référence de l’élément trouvé (le cas échéant)

La commande DOM Chercher element XML vous permet de rechercher des éléments XML spécifiques dans une structure XML. La recherche débute à l’élément désigné par le paramètre refElément.

Le noeud XML à chercher est défini et exprimé en notation XPath à l'aide du paramètre xPath (pour plus d'informations, reportez-vous à la section Utilisation de la notation XPath section). Les expressions de chemin suivantes sont prises en charge :

ExpressionAction
nodenameSélectionne tous les noeuds enfants du noeud contextuel avec le nom "nodename
/Sélectionne des noeuds à partir du noeud racine (chemin absolu)
//Sélectionne les noeuds du document à partir du noeud courant qui correspond à la sélection, quelle que soit leur emplacement
@Sélectionne les attributs
.Sélectionne le noeud courant
..Sélectionne le parent du noeud courant
*Sélectionne tous les éléments enfants du noeud contextuel
@*Sélectionne tous les attributs du noeud contextuel
text()Sélectionne tous les enfants du noeud de type texte du noeud contextuel
node()Sélectionne tous les enfants de l'élément du noeud contextuel, quel que soit le type de noeud
local-name()Retourne une chaîne représentant le nom local du premier noeud d'un ensemble de noeuds
para[1]Sélectionne le premier para enfant du noeud contextuel
para[last()]Sélectionne le dernier para enfant du noeud contextuel
chapitre[titre="Introduction"]Sélectionne les chapitre enfants du noeud contextuel ayant un ou plusieurs titre enfant(s) avec la chaîne-valeur équivalente à Introduction
chapitre[titre]Sélectionne les chapitre enfants du noeud contextuel ayant un ou plusieurs titre enfant(s)
para[@type="attention"]Sélectionne tous les para enfants du noeud contextuel dont l'attribut est "type" et la valeur est "warning"
para[@type="warning"][5]Sélectionne le cinquième para enfant du noeud contextuel dont l'attribut est "type" et la valeur est "warning"
para[5][@type="warning"]Sélectionne le cinquième para enfant du noeud contextuel si cet enfant a un attribut "type" et une valeur égale à "warning"
para[contains(@type,'bg')]Sélectionne tous les para enfants du noeud contextuel ayant un attribut "type"contenant la chaîne "bg" 
//titre | //prixSélectionne tous les éléments titre et prix du document

Note de compatibilité : A compter de v18 R3, le niveau de conformité de l'implémentation de XPath dans 4D est nettement plus élevé et permet la prise en charge des expressions ci-dessus. Pour des raisons de compatibilité, l'implémentation antérieure non standard est maintenue par défaut dans les bases converties. Si vous souhaitez obtenir les fonctionnalités avancées dans vos bases converties, vous devez cocher l'option de compatibilité Utiliser XPath standard de la Page Compatibilité

Note : Les requêtes sont sensibles à la casse.

La commande retourne la référence XML de(s) élément(s) trouvé(s). Lorsque le tableau chaîne tabRefEléments est passé, la commande le remplit avec la liste des références XML trouvées. Dans ce cas, la commande retourne en résultat le premier élément du tableau tabRefEléments. Ce paramètre est utile lorsque plusieurs éléments de même nom existent à l’emplacement désigné par le paramètre xPath.

Soit la structure XML suivante :

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<bookstore>
<book>
  <title lang="fr">Harry Potter</title>
  <price>29.99</price>
</book>
<book>
  <title lang="fr">Apprendre le XML</title>
  <price>39.95</price>
</book>
</bookstore>

Cet exemple permet de rechercher rapidement un élément XML et d’afficher sa valeur :

 vRefElem:=DOM Analyser source XML("books.xml")
 vTrouvé:=DOM Chercher element XML(vRefElem;"book[2]/title") // chemin relatif du noeud courant
 DOM LIRE VALEUR ELEMENT XML(vTrouvé;valeur)
 ALERTE("La valeur de l’élément est : \""+valeur+"\"") // Apprendre le XML

La même recherche peut également être effectuée ainsi :

 vRefElem:=DOM Analyser source XML("books.xml")
 vTrouvé:=DOM Chercher element XML(vRefElem;"book[2]/title") // chemin relatif du noeud courant
 DOM LIRE VALEUR ELEMENT XML(vTrouvé;valeur)
 ALERTE("La valeur de l’élément est : \""+valeur+"\"") // Apprendre le XML

Soit la structure XML suivante :

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Racine>
   <Elem1>
      <Elem2>aaa</Elem2>
      <Elem2>bbb</Elem2>
      <Elem2>ccc</Elem2>
   </Elem1>
</Racine>

Le code suivant permet de récupérer la référence de chaque élément Elem2 dans le tableau tAtrouvés :

 vRefElem:=DOM Analyser source XML("exemple.xml")
 TABLEAU TEXTE(tAtrouves;0)
 vTrouvé:=DOM Chercher element XML(vRefElem;"/Racine/Elem1/Elem2";tAtrouvés)

Vous souhaitez sélectionner tous les éléments "rect" avec des attributs "class" contenant la chaîne "bgcontainer" :

 $node:=DOM Chercher element XML($root;" //rect[contains(@class,'bgcontainer')")

Si la commande a été exécutée correctement, la variable système OK prend la valeur 1, sinon elle prend la valeur 0 et une erreur est générée.

Une erreur est générée lorsque :

  • la référence de l’élément n’est pas valide
  • le chemin xPath passé n’est pas valide.



Voir aussi  

DOM Compter elements XML
DOM Creer element XML

 
PROPRIÉTÉS 

Produit : 4D
Thème : XML DOM
Numéro : 864
Nom intl. : DOM Find XML element

Cette commande modifie la variable système OKCette commande modifie la variable système ErrorCommande(s) éligible(s) à l'exécution dans un process préemptif

 
PAGE CONTENTS 
 
HISTORIQUE 

Modifié : 4D v11 SQL

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v20 R7)