0

您如何获取包含作为您正在搜索的字符串前缀的节点的记录?

XML 看起来像这样:

<records>
  <record>
    <name>foo</name>
    <prefix>abc</prefix>
  </record>
  <record>
    <name>bar</name>
    <prefix>def</prefix>
  </record>
  <record>
    <name>bar</name>
    <prefix>abc.123</prefix>
  </record>
</records>

所以如果我有字符串“abc.123.xyz”,我会获取第一条和第三条记录。

大致翻译为“/records/record[prefix[is-contained-in?('abc.123.xyz')]]”

我看到的任何 XPath 函数都以相反的方式工作(开始于,包含),您指定子字符串而不是包含子字符串的节点。

4

1 回答 1

0

这与您的示例中的记录节点匹配:

 <xsl:template match="/">
      <xsl:apply-templates select="/records/record[starts-with(./prefix, substring-before('abc.123.xyz','.'))]"/>
 </xsl:template>

子串之前

于 2012-08-28T21:57:43.800 回答