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」がある場合、1 番目と 3 番目のレコードをフェッチします。

大まかに「/records/record[prefix[is-contained-in?('abc.123.xyz')]]」に翻訳

私が見た XPath 関数は、部分文字列を含むノードの代わりに部分文字列を指定する場合、逆に動作します (starts-with、contains)。

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 に答える