web-dev-qa-db-fra.com

Comment utiliser begin-with (), contains () et ends-with () dans XPath pour trouver le texte interne du nœud xml? dans XPATH 1.0

<ArticleBackmatter>
   <Heading>Ethical standards and patient consent</Heading>
   <Heading>Ethical standards and patient</Heading>
   <Heading>standards and patient consent</Heading>
</ArticleBackmatter>

Je veux obtenir le texte intérieur en commençant par "Ethique", contient "et" et en terminant par "consentement" dans le nœud Titre.

11
Karuppa Samy

Une façon possible:

//Heading[starts-with(., 'Ethical') and ends-with(., 'consent')]

La fonction ends-with() est XPath 2.0. Dans XPath 1.0, il peut être remplacé en utilisant substring() et string-length(). Voici l'équivalent XPath 1.0 (enveloppé pour la lisibilité):

//Heading[
            starts-with(., 'Ethical') 
                and 
            'consent' = substring(., string-length(.) - string-length('consent') +1)
         ]
26
har07