Différence entre //, .// et ..// dans XPath?
Quelqu'un peut-il s'il vous plaît aider avec la différence entre les XPath ci-dessous et m'aider à comprendre lequel de ceux-ci utiliser quand. J'ai trouvé que les trois fonctionnent mais je ne sais pas quand les utiliser.
Get Element Text ${output} //priorityGet Element Text ${output} .//vrrp-group/nameGet Element Text ${output} ..//track/priority-hold-time
Réponses
En général
//sélectionne parmi les nœuds descendants ou autonomes (le long de l' descendant-or-selfaxe ). C'est l'abréviation de /descendant-or-self::node()/.
//commence à partir du nœud racine, couvrant ainsi tout le document..//commence à partir du nœud de contexte ...//commence à partir du parent du nœud de contexte.
Dans votre cas particulier
//prioritysélectionne tous lespriorityéléments du document..//vrrp-group/namesélectionne, sous le nœud de contexte, tous lesnameéléments avec unvrrp-groupparent...//track/priority-hold-timesélectionne, sous le parent du nœud de contexte, tous lespriority-hold-timeéléments avec untrackparent.
Note de Robotframework:
Dans le contexte de la Get Element Textcommande de la bibliothèque XML Robotframework, le XPath doit être relatif au nœud source ( ${output}dans votre cas). Les XPaths absolus tels que //priorityne sont pas autorisés là-bas.
Voir également
- Différence entre "//" et "/" dans XPath?
- Quelle est la différence entre .// et // * dans XPath?
- Quelle est la signification de .// dans XPath?