Ci sono diversi distinti, concetti chiave XPath in gioco qui ...
assoluti vs XPaths relativi (/
vs .
)
/
introduce un percorso di posizione assoluto, a partire dalla radice del documento ument.
.
introduce un percorso di posizione relativo, a partire dal nodo di contesto.
elemento denominato vs qualsiasi elemento (ename
vs *
)
/ename
seleziona un elemento ename
radice
./ename
seleziona tutti ename
elementi figlio del nodo corrente.
/*
seleziona l'elemento radice, indipendentemente dal nome.
./*
o *
seleziona tutti gli elementi figlio del nodo di contesto, indipendentemente dal nome.
asse descendant-or-self (//*
)
//ename
seleziona tutti ename
elementi in un documento.
.//ename
seleziona tutti gli elementi ename
al nodo di contesto o al di sotto.
//*
seleziona tutti gli elementi in un documento, indipendentemente dal nome.
.//*
seleziona tutti gli elementi, indipendentemente dal nome, al o al di sotto del nodo di contesto.
Con questi concetti in mente, qui sono le risposte alle vostre domande specifiche ...
.//*[@id='Passwd']
significa selezionare tutti gli elementi in corrispondenza o al di sotto della corrente nodo di contesto con valore di attributo id
uguale a 'Passwd'
.
//child::input[@type='password']
può essere semplificata //input[@type='password']
e mezzi per selezionare tutti gli elementi input
nel documento che hanno un valore di attributo type
pari a 'password'
.
Questo è stato un inizio facile per me: http://www.zvon.org/xxl/XPathTutorial/General/examples.html – SiKing