hii所有人都可以帮助我
<block2>
<receiverAddress>BKTRUS33XBRD</receiverAddress>
</block2>
在上面的接收者地址中,如果x出现在第九个位置,我们需要取1到8个数字,如果x没有出现在第九个位置,我们需要修剪该字符串的最后一个字母
输出如果x是9位置: BKTRUS33 如果x不在第九位: BKTRUS33XBR
如何在xslt
中完成答案 0 :(得分:2)
此转化:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="receiverAddress[substring(.,9,1)='X']">
<xsl:value-of select="substring(.,1,8)"/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="receiverAddress[not(substring(.,9,1)='X')]">
<xsl:value-of select="substring(.,1,string-length() -1)"/>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
应用于此XML文档时:
<block2>
<receiverAddress>BKTRUS33XBRD</receiverAddress>
<receiverAddress>BKTRUS33YBRD</receiverAddress>
</block2>
会产生想要的正确结果:
BKTRUS33
BKTRUS33YBR
请注意:
使用标准XPath函数 substring()
。
如何使用标准XPath 1.0函数 substring()
和 string-length()
来定位/排除字符串另一个字符串的结尾。
您可以在XPath 2.0中使用标准的XPath 2.0函数 ends-with()
。
如何使用模式匹配,以便模板内不需要XSLT条件指令。