EXSL - 如何使用STR:令牌化()?(EXSL - How to use str:token

2019-10-20 23:12发布

我刚开始XSLT和我尝试使用STR:令牌化()模板XSLT 1.0。 我查了一下: 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的)

Answer 1:

该生产线

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

被分配给var中的XPath的评估结果John.Wayne

分配给var 字符串值 John.Wayne你有单引号将其包围:

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


Answer 2:

问题不在于与记号化,而是你如何设置变量

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

这是寻找命名的元素John.Wayne 。 我猜你真的想用一个字符串在这里...

尝试这个!

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


文章来源: EXSL - How to use str:tokenize()?
标签: xml xslt xpath