9
Tôi chỉ muốn lấy phần tử cuối cùng từ một chuỗi giống như "aaa-bbb-ccc-ddd" này trong xslt.Chọn một từ cuối cùng từ một chuỗi trong xslt
Đặt ra phải là "ddd" không phản hồi của '-'s.
Tôi chỉ muốn lấy phần tử cuối cùng từ một chuỗi giống như "aaa-bbb-ccc-ddd" này trong xslt.Chọn một từ cuối cùng từ một chuỗi trong xslt
Đặt ra phải là "ddd" không phản hồi của '-'s.
XSLT/XPath 2.0 - bằng cách sử dụng tokenize() chức năng để phân chia các chuỗi trên "-" và sau đó sử dụng một bộ lọc ngữ để chọn mục cuối cùng trong chuỗi:
<?xml version="1.0"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:value-of select="tokenize('aaa-bbb-ccc-ddd','-')[last()]"/>
</xsl:template>
</xsl:stylesheet>
XSLT/XPath 1.0 - sử dụng a recursive template để tìm kiếm sự xuất hiện cuối cùng của "-" và chọn chuỗi con sau nó:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:call-template name="substring-after-last">
<xsl:with-param name="input" select="'aaa-bbb-ccc-ddd'" />
<xsl:with-param name="marker" select="'-'" />
</xsl:call-template>
</xsl:template>
<xsl:template name="substring-after-last">
<xsl:param name="input" />
<xsl:param name="marker" />
<xsl:choose>
<xsl:when test="contains($input,$marker)">
<xsl:call-template name="substring-after-last">
<xsl:with-param name="input"
select="substring-after($input,$marker)" />
<xsl:with-param name="marker" select="$marker" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$input" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Tìm kiếm "XSLT chuỗi phân chia" –
Hey ... tôi đã sử dụng chức năng tokenize và nó đã hoạt động. Cảm ơn bạn rất nhiều ... – Satoshi
@Satoshi, plz chấp nhận câu trả lời nếu nó hữu ích. –