XSLT - 在逗号之间获取字符串

时间:2018-04-21 18:35:04

标签: xslt

我怎样才能获得价值'四'在XSLT中?

<root>
  <entry>(one,two,three,four,five,six)</entry>
</root>

提前致谢。

1 个答案:

答案 0 :(得分:0)

您没有指定XSLT版本,所以我假设版本 2.0

我还假设单词four只是一个“标记”,说明来自哪个地方 获取结果字符串(在第3个和第4个逗号之间)。

要获得所需的片段,您可以:

  • 使用tokenize功能“剪切”entry的全部内容 用逗号作为切割图案。
  • 获取结果数组的第四个元素。

该表达式可用于例如在匹配entry的模板中。

因此示例脚本如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" encoding="UTF-8" indent="yes" />

  <xsl:template match="entry">
    <xsl:copy>
      <xsl:value-of select="tokenize(., ',')[4]"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="@*|node()">
    <xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy>
  </xsl:template>
</xsl:transform>

对于您的输入XML,它提供:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <entry>four</entry>
</root>