2014-10-08 31 views
0

源文件包含如何從XSL閱讀文本和每個文本應該在

<p>TEST</p> 

所需的輸出應用XSLT將輸入文件中的每個標籤的地方:

<p>T</p> 
<p>E</p> 
<p>S</p> 
<p>T</p> 

這可能嗎?

+1

簡短的回答是**是**。更長的答案,你會發現在這裏:http://stackoverflow.com/questions/6680437/xslt-for-each-letter-in-a-string。 – 2014-10-08 11:33:04

回答

2

那麼你可以嘗試在XSLT遞歸:

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"> 

    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="/"> 
    <root> 
    <xsl:call-template name="for-each-character"> 
     <xsl:with-param name="data" select="p/text()"/> 
    </xsl:call-template> 
    </root> 
    </xsl:template> 
    <xsl:template name="for-each-character"> 
    <xsl:param name="data"/> 
    <xsl:if test="string-length($data) &gt; 0"> 
     <p> 
     <xsl:value-of select="substring($data,1,1)"/> 
     </p> 
     <xsl:call-template name="for-each-character"> 
     <xsl:with-param name="data" select="substring($data,2,string-length($data))"/> 
     </xsl:call-template> 
    </xsl:if> 
    </xsl:template> 
</xsl:stylesheet> 

希望這有助於。