240 votes

XPath pour sélectionner un élément avec une valeur d'attribut

J'ai XML suivant.

 <?xml version="1.0" encoding="UTF-8"?>
<Employees>
    <Employee id="3">
        <age>40</age>
        <name>Tom</name>
        <gender>Male</gender>
        <role>Manager</role>
    </Employee>
    <Employee id="4">
        <age>25</age>
        <name>Meghna</name>
        <gender>Female</gender>
        <role>Manager</role>
    </Employee>
</Employees>
 

Je veux sélectionner l'élément employé avec id = "4".

J'utilise ci-dessous l'expression XPath qui ne renvoie rien.

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

Je l'ai vérifié à http://chris.photobooks.com/xml/default.htm et il indique xpath non valide, ne sachant pas où est le problème.

340voto

JLRishe Points 22173

Vous devez supprimer les / avant les [ . Les prédicats (les parties en [ ] ) ne doivent pas avoir de barres obliques immédiatement avant eux. En outre, pour sélectionner l'élément Employee lui-même, vous devez laisser le /text() à la fin ou sinon, il vous suffirait de sélectionner les valeurs de texte d'espaces immédiatement sous l'élément Employee.

 //Employee[@id='4']
 

12voto

sputnick Points 31663

Essayez de faire ceci:

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

-1voto

user3373261 Points 29

Un peu tard pour la soirée mais j’ai remarqué que le code XML est identique à celui-ci:

http://www.journaldev.com/1194/java-xpath-tutorial-with-examples

Le code correct est sur le lien directement en dessous - au cas où quelqu'un dans le futur consulterait ce fil pour obtenir de l'aide

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X