<oXygen/> XML Editor User Guide |
XPath est un langage pour traiter des différentes parties d'un document XML. XPath, comme le Document Object Model (DOM), modèle un document XML comme un arbre de nœuds. Une expression XPath est un mécanisme pour naviguer et sélectionner des nœud du document XML. Une expression XPath est d'une façon analogue à une requête d'un langage de requête structuré (SQL) utilisée pour sélectionner des enregistrements d'une base de données.
XPath modèle un document XML comme un arbre de nœuds. Il y a différents types de nœuds, dont les nœuds d'élément, les nœuds d'attribut, et les nœuds de texte. XPath définit une façon de calculer une valeur-chaîne unique pour chaque type de nœud.
XPath définit une librairie de fonctions standard pour travailler avec des chaînes, des nombres et des expressions booléennes.
child: : * sélectionne tous les fils du nœud root.
.//name sélectionne tous les éléments ayant le nom "nom", descendants du nœud actuel.
/catalog/cd[price>10.80]sélectionne tous les éléments cd qui ont un élément prix avec une valeur supérieure à 10.80
Pour en savoir plus sur XPath, l'URL suivante est recommandée : http://www.w3.org/TR/xpath
Pour utiliser XPath efficacement cela nécessite au moins une compréhension de la librairie des fonctions essentielles XPath ( XPath Core Function Library). Si vous avez cette connaissance la partie champ expression XPath de la barre d'outils de l'éditeur courant de <oXygen/> peut être utilisée pour vous aider dans le développement de documents XML.
Dans <oXygen/> a XPath 1.0 or XPath 2.0 expression is typed and executed on the current document from the XPath console available on the toolbar of every open XML document. Les résultats d'une requête XPath sont retournés dans le panneau message. Cliquer sur un enregistrement dans la liste des résultat surligne les nœuds à l'intérieur du panneau d'édition.
Les résultats sont retournés dans un format qui est une expression XPath valide:
- [FileName.xml] /node[value]/node[value]/node[value] -
Exemple 6.1. Utilisation de XPath avec la DTD DocBook
Notre exemple est tiré d'un livre DocBook basé sur la DTD XML DocBook. Le livre contient un nombre de chapitres. DocBook définit que les chapitres qui ont une balise d'ouverture <chapter> et une balise de fermeture équivalente </chapter> doivent fermer l'élément. Pour retourner tous les nœuds de chapitres du livre, entrez //chapter dans le champ expression XPath, puis Entrée. Ceci va retourner tous les nœuds de chapitres du livre DocBook dans le panneau message. Si votre livre a six chapitres, il y aura six enregistrements dans la liste des résultats. Chaque enregistrement une fois cliqué va retrouver et surligner le chapitre et tous les nœuds ayant les mêmes parents contenus entre les balises d'ouverture et de fermeture du chapitre.
Si nous avions utilisé XPath pour lancer une requête pour tous les nœuds exemples contenus dans le nœud de section 2 d'un document XML DocBook, nous aurions utilisé l'expression XPath suivante //chapter/sect1/sect2/example. Si un nœud exemple est trouvé dans n'importe quel nœud de section 2, une liste des résultats sera retournée au panneau message. Pour chaque occurence du nœud de l'élément, un enregistrement sera créé dans la liste des résultats.
Dans notre exemple une requête XPath sur le fichier
oxygen.xml
:
- [oxygen.xml] /chapter[1]/sect1[3]/sect2[7]/example[1]
Ce qui signifie :
Dans le fichier oxygen.xml
, premier chapitre,
troisième section niveau 1, septième section niveau 2, le nœud exemple trouvé
est le premier dans la section.
![]() | Note |
---|---|
Si votre projet est composé d'un fichier principal avec des références ENTITY vers d'autres fichiers, vous pouvez utiliser XPath pour retourner tous les éléments nom d'un certain type en faisant une requête sur le fichier principal. La liste des résultats va faire une requête sur tous les fichiers référencés. |
![]() | Note |
---|---|
When the edited document is of type XSL the XPath expression typed in the XPath console is applied over the XML document specified in the transformation scenario associated with the XSL document. <oXygen/> provides a user preference to be set if you want to apply the XPath expression over the XSL document itself. |
![]() | Important |
---|---|
Si le document édité définit un namespace de défaut puis <oXygen/> liera ce namespace au premier libre préfixe de la liste: default, default1, default2, etc. Par exemple si le document définit le namespace de défaut xmlns="something" et le préfixe default n'est pas associé à un namespace alors vous pouvez assortir unprefixed étiquettes dans une expression de XPath tapée dans la console de XPath en employant le préfixe default. For example to find all the level elements when the root element defines a default namespace you should execute in the XPath console the expression: //default:level |
To define default mappings between prefixes that can be used in the XPath console and namespace URIs go to the XPath user preferences panel.
To apply a XPath expression relative to the element on which the caret is positioned use the action Ctrl+Alt+.) (also available on the context menu of the main editor panel) to copy the XPath expression of the element to the clipboard and the action of the contextual menu of the XPath console to paste this expression in the console. Then add your relative expression and execute the resulting complete expression.
-> -> (