我的xsl变量中有一个很长的网址。 例如。 @url =“http://stackoverflow.com/questions/ask/2434/35454”
我需要一个基于第三个索引“/”的子串。即我只想展示 http://stackoverflow.com
xsl中有一个子串(字符串,开始,长度)函数,但我如何找到长度部分。我找不到任何indexof函数。
<xsl:value-of select="substring(url,1,length)"/>
我的网址是假设 - “http://stackoverflow.com/questions/ask/2434/35454” 我想要的输出是http://stackoverflow.com
请提出一些解决方案。
答案 0 :(得分:1)
使用强>:
concat(substring-before(.,'//'),
'//',
substring-before(substring-after(., '//'),
'/'
)
)
完整的代码示例:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/*">
<xsl:value-of select=
"concat(substring-before(.,'//'),
'//',
substring-before(substring-after(., '//'),
'/'
)
)
"/>
</xsl:template>
</xsl:stylesheet>
在此XML文档上应用此转换时:
<t>http://stackoverflow.com/questions/ask/2434/35454</t>
产生了想要的正确结果:
http://stackoverflow.com