我只是开始XSLT,我尝试在XSLT 1.0中使用str:tokenize()模板。
我检查了:http://www.exslt.org/str/functions/tokenize/index.html

但是我无法获得预期的结果。

这是代码:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
                                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                                xmlns:exsl="http://exslt.org/common"
                                xmlns:str="http://exslt.org/strings"
                                exclude-result-prefixes="str">
<xsl:output method="xml"/>
<xsl:template match="/">
  <xsl:variable name="var" select="John.Wayne"/>
    <root>
       <xsl:for-each select="str:tokenize($var,'.')">
            <element>
                <xsl:value-of select="."/>
            </element>
        </xsl:for-each>
    </root>
</xsl:template>
</xsl:stylesheet>


我的预期输出应为:

  <root>
     <element>John</element>
     <element>Wayne</element>
    </root>


任何帮助表示赞赏。提前致谢!
哦,顺便说一句,我的输出是:

<?xml version="1.0"?>
<root/>


(我正在使用xsltproc)

最佳答案

线

<xsl:variable name="var" select="John.Wayne"/>


将的评估结果分配给var

要将字符串值John.Wayne分配给var,必须用单引号将其引起来:

<xsl:variable name="var" select="'John.Wayne'"/>

关于xml - EXSL-如何使用str:tokenize()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25855364/

10-09 05:28