web-dev-qa-db-ja.com

XPathでstarts-with()、contains()、およびends-with()を使用してxmlノードの内部テキストを見つける方法XPATH 1.0で

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

「Ethical」から開始し、「and」を含み、Headingノードで「consent」で終了する内部テキストを取得したい。

11
Karuppa Samy

1つの可能な方法:

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

ends-with()関数はXPath 2.0です。 XPath 1.0では、 置換可能substring()およびstring-length()を使用します。同等のXPath 1.0(読みやすくするためにラップされています)は次のとおりです。

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