XPath sélectionnant plusieurs éléments avec des prédicats
J'ai une requête XPath qui est en train de faire ce que je veux, à savoir la sélection d'une union de "nom de famille" & " -les noms de prédicats (C'est en fait soit/ou que j'ai besoin, mais l'union fonctionne très bien):
/header/authors/surname[./text() and @id='1']
|
/header/authors/given-names[./text() and @id='1']
Cependant cela semble trop longue haleine pour moi et je pense qu'il devrait être possible de faire quelque chose de plus concis tels que:
/header/authors/(surname|given-names)[./text() and @id='1']
... mais cette version n'est pas valide XPath.
Quelqu'un peut me dire de propre façon d'écrire l'origine de l'expression XPath qui ne nécessite pas le chemin d'accès complet à être écrit deux fois?
Grâce
Richard
source d'informationauteur Richard Corfield | 2010-11-02
Vous devez vous connecter pour publier un commentaire.
D'abord, ceci est valable XPath 2.0:
Seconde, ce XPath 1.0:
Comment sur
En plus de Alejandro et Seva bonnes réponses, une autre alternative est
Ceci est valable dans XPath 1.0. C'est toujours un peu redondant, mais elle est plus succinct que le long-winded version dans votre question.
Une autre alternative serait de déclarer une variable pour le nom des éléments et une variable donnée, des éléments du nom, puis
Ce serait sans doute plus total, mais plus facile à lire que le précédent.