Differenza tra //, .// e ..// in XPath?
Sep 22 2020
Qualcuno può aiutarmi con la differenza tra i seguenti XPath e aiutarmi a capire quale di questi usare quando. Ho scoperto che funzionano tutti e tre, ma non sono sicuro di quando usarli.
Get Element Text ${output} //priorityGet Element Text ${output} .//vrrp-group/nameGet Element Text ${output} ..//track/priority-hold-time
Risposte
2 kjhughes Sep 22 2020 at 20:57
In generale
//seleziona tra discendente o auto nodi (lungo l' descendant-or-selfasse ). È l'abbreviazione di /descendant-or-self::node()/.
//parte dal nodo radice, coprendo così l'intero documento..//parte dal nodo del contesto ...//inizia dal genitore del nodo di contesto.
Nel tuo caso particolare
//priorityseleziona tutti glipriorityelementi nel documento..//vrrp-group/nameseleziona, sotto il nodo del contesto, tutti glinameelementi con unvrrp-groupgenitore...//track/priority-hold-timeseleziona, sotto il genitore del nodo di contesto, tutti glipriority-hold-timeelementi con untrackgenitore.
Nota Robotframework:
Nel contesto del Get Element Textcomando della libreria XML Robotframework, XPath deve essere relativo al nodo di origine ( ${output}nel tuo caso). XPath assoluti come //prioritynon sono consentiti lì.
Guarda anche
- Differenza tra "//" e "/" in XPath?
- Qual è la differenza tra .// e // * in XPath?
- Qual è il significato di .// in XPath?