在此先感謝您的支持。我只是遇到了一個問題,並在各方面嘗試了很多。在XSLT 1.0中解析和存儲數組中的值
我有一個XSLT 1.0需要用逗號分析xml標籤的值並將其存儲在數組中。
< OPTIONS> VAL1,VAL2,VAL3 ,,, VAL4 </OPTIONS>
在這裏,我需要解析由逗號options字段的值,然後將其存儲在數組中。在這裏,我堅持將它存儲在數組中以供進一步使用的方式。
請指點
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="text" omit-xml-declaration="yes"/>
<xsl:variable name="inline-array">
<!--<Item>A</Item>
<Item>B</Item>
<Item>C</Item>-->
<xsl:call-template name="splitByComma">
<xsl:with-param name="str" select="OPTIONS"/>
</xsl:call-template>
</xsl:variable>
<xsl:template match="/">
<xsl:param name="array" select="document('')/*/xsl:variable[@name='inline-array']/*"/>
<xsl:value-of select="$array[1]"/>
</xsl:template>
<xsl:template name="splitByComma">
<xsl:param name="str"/>
<xsl:choose>
<xsl:when test="contains($str,',')">
<item><xsl:value-of select="substring-before($str,',')"/></item>
<xsl:call-template name="splitByComma">
<xsl:with-param name="str"
select="substring-after($str,',')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<item><xsl:value-of select="$str"/></item>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
@爾卡,該變量是全球應前的定義實際轉變發生。我對嗎 ?從我開始工作的地方有一個例子。請按照這裏的網址http://stackoverflow.com/questions/3299938/creating-arrays-in-xslt – Hari
是的,我讀了這個鏈接,但有一個區別。描述的解決方案加載一個帶有「靜態」內容的變量。它只是讀它。你想閱讀它(它)並**解釋**它(它不 - 如果它確實沒有任何理由調用document()函數)。 因此,除了鏈接上的解決方案,它還讀取「- 」序列並且什麼也不做,它也會從樣式表中讀取元素序列,並且不會對它們做任何更多操作。 如果變量是全局的或不全是無關緊要的。對於document()函數,您的xslt文件只是一個沒有特殊含義的xml文件。 –
是的,我現在明白了。我仍然在努力尋找解決方案。非常感謝。讓我知道你是否給了一些代碼樣本來解決我的問題。 – Hari