XPath per selezionare l’elemento in base al valore dell’attributo

Ho seguito XML.

   40 Tom Male Manager   25 Meghna Female Manager   

Voglio selezionare l’elemento Employee con id = “4”.

Sto usando sotto l’espressione XPath che non restituisce nulla.

 //Employee/[@id='4']/text() 

L’ho verificato su http://chris.photobooks.com/xml/default.htm e dice xpath non valido, non sono sicuro di quale sia il problema.

Devi rimuovere il / prima del [ . Predicati (le parti in [ ] ) non dovrebbero presentare delle barre immediatamente prima di esse. Inoltre, per selezionare l’elemento Dipendente stesso, dovresti lasciare il /text() alla fine o altrimenti dovresti semplicemente selezionare i valori di testo degli spazi bianchi immediatamente sotto l’elemento Employee.

 //Employee[@id='4'] 

Modifica: come Jens sottolinea nei commenti, // può essere molto lento perché cerca l’intero documento per trovare i nodes corrispondenti. Se la struttura dei documenti con cui stai lavorando sarà coerente, probabilmente stai meglio utilizzando un percorso completo, ad esempio:

 /Employees/Employee[@id='4'] 

Prova a fare questo:

 /Employees/Employee[@id=4]/*/text()