无论如何,在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。
答案 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>