如何在XSLT / XPath中解析由“ /”分隔的字符串?

时间:2018-09-18 12:27:11

标签: xml xslt xslt-1.0

问题如下:我的XML具有内容为“ x / y”的元素。这表示“零件”的运行编号。在第一个XML中,此元素的值将为1/5,第二个元素为2/5,最后一个值为5/5。你明白了。元素本身看起来像

<part>x/y</part>

其中x可能在1到y之间,并且y可以是任何数字

我需要找到两种情况的答案:

  1. 当x = 1时,结果应为“添加”
  2. 当x = y时,结果应为“完成”

如何使用XSL(1.0版)解决此问题?

1 个答案:

答案 0 :(得分:1)

使用substring-before()

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

  <xsl:template match="part">
    <xsl:variable name="x" select="substring-before(., '/')"/>
    <xsl:variable name="y" select="substring-after(., '/')"/>
    <xsl:choose>
      <xsl:when test="$x = 1">Add</xsl:when>
      <xsl:when test="$x = $y">Complete</xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="concat('Unexpected values for x,y: ', $x, ',', $y)"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>