xslt在xpath查询

时间:2016-10-25 15:35:13

标签: xslt xpath xslt-1.0

无论如何,在xpath查询中将substring-after函数与substring函数结合起来,以便在某个字符后选择一定数量的字符。 例如“这是一个测试字符串”。

在“a”出现后仅选择字符,然后指定之后要显示的字符数。

到目前为止,我已尝试过各种各样的方法而没有运气。

<xsl:value-of select="substring((substring-before(/dataset/node1/node2/@NAME, '@ ')@NAME,1,4)"/>

我只能找到有关substring-after和substring-before的信息。 哦,我正在使用xslt 1.0。

1 个答案:

答案 0 :(得分:0)

  

在“a”出现后仅选择字符,然后指定多少个字符   之后要显示的字符。

XML输入

<dataset>
    <node1>
        <node2 NAME="This is a test string"/>
    </node1>
</dataset>

XSLT 1.0

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output indent="yes"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="/">
    <results><xsl:value-of select="substring(substring-after(/dataset/node1/node2/@NAME,'a'),1,4)"/></results>
  </xsl:template>

</xsl:stylesheet>

<强>输出

<results> tes</results>

如果您宁愿忽略前导空格并获得输出<results>test</results>,请将normalize-space()添加到混音中......

<results>
  <xsl:value-of select="
    substring(
      normalize-space(
        substring-after(/dataset/node1/node2/@NAME,'a')
      )
    ,1,4)"/>
</results>