2014-10-06 103 views
8
<ArticleBackmatter> 
    <Heading>Ethical standards and patient consent</Heading> 
    <Heading>Ethical standards and patient</Heading> 
    <Heading>standards and patient consent</Heading> 
</ArticleBackmatter> 

我想在“Heading”节点中从“Ethical”开始,包含“and”并以“consent”结尾来获取内部文本。如何在XPath中使用starts-with(),contains()和ends-with()来查找xml节点innertext?在XPATH 1.0中

+1

什么版本的XPath(或者什么工具/库/语言,如果您不确定版本)?在XPath 1.0中可以使用'starts-with',但'ends-with'只能在XPath 2.0中引入(你必须在1.0中用'substring'和'string-length'来伪装它。 – 2014-10-06 13:23:56

+1

我只使用XPath 1.0 – 2014-10-06 13:27:32

+0

你的问题不清楚:你的例子的预期结果是什么? – 2014-10-06 13:31:33

回答

19

一种可能的方式:

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

ends-with()功能的XPath 2.0。在XPath 1.0中,使用substring()string-length()it can be replaced。这里是等效的XPath 1.0(包装为了便于阅读):

//Heading[ 
      starts-with(., 'Ethical') 
       and 
      'consent' = substring(., string-length(.) - string-length('consent') +1) 
     ] 
相关问题