如何获取包含节点的记录,该节点是您要搜索的字符串的前缀?
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 [前缀[is-contained-in?('abc.123.xyz')]]”
我看到的任何XPath函数都以相反的方式工作(starts-with,contains),您可以在其中指定子字符串而不是包含子字符串的节点。
答案 0 :(得分:0)
这匹配样本中的记录节点:
<xsl:template match="/">
<xsl:apply-templates select="/records/record[starts-with(./prefix, substring-before('abc.123.xyz','.'))]"/>
</xsl:template>