Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何检查字符串变量在XSL中是否以逗号分隔?_Html_Xml_Regex_Xslt 1.0 - Fatal编程技术网

Html 如何检查字符串变量在XSL中是否以逗号分隔?

Html 如何检查字符串变量在XSL中是否以逗号分隔?,html,xml,regex,xslt-1.0,Html,Xml,Regex,Xslt 1.0,我需要测试xsl变量在xslt中是否只包含一个单词或多个逗号分隔的单词 因为变量是动态的,所以它是一个映射到url querystring的参数,url querystring可以是这样的: index.aspx?role=manager 或 在XSLT中,我需要确定$role参数是一个单词还是多个逗号分隔的单词。如果有多个单词,那么我需要提取每个单词,并根据这些单词进行xslt过滤,如 /rows/row[role=extractedWord[1] or role = extractedWo

我需要测试xsl变量在xslt中是否只包含一个单词或多个逗号分隔的单词

因为变量是动态的,所以它是一个映射到url querystring的参数,url querystring可以是这样的:

index.aspx?role=manager

在XSLT中,我需要确定$role参数是一个单词还是多个逗号分隔的单词。如果有多个单词,那么我需要提取每个单词,并根据这些单词进行xslt过滤,如

/rows/row[role=extractedWord[1] or role = extractedWord[2]
因此,只返回与经理或主管角色匹配的行

这可能吗

更新: 我有一个这样的过滤器:

index.aspx?role=manager

如果role只有一个值,比如
index.aspx?role=manager
,那么上面的方法就可以了。 但如果角色是这样的多个词,
index.aspx?角色=经理、主管
然后我需要提取字符串“manager,CEO”,并能够执行以下操作:


您可以为$role中的第一个角色设置变量,如下所示:

<xsl:variable name="Role1">
  <xsl:choose>
    <xsl:when test="contains($Role, ',')">
      <xsl:value-of select="substring-before($Role, ',')"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$Role" />
    </xsl:otherwise>
  <xsl:choose>
</xsl:variable>

您可以为$role中的第一个角色设置变量,如下所示:

<xsl:variable name="Role1">
  <xsl:choose>
    <xsl:when test="contains($Role, ',')">
      <xsl:value-of select="substring-before($Role, ',')"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$Role" />
    </xsl:otherwise>
  <xsl:choose>
</xsl:variable>

XSLT的哪个版本?XSLT2有正则表达式,XSLT1没有。哪个版本的XSLT?XSLT2有正则表达式,XSLT1没有。谢谢,尽管唯一的问题是$Role参数中可能有多达5个甚至更多的逗号分隔的单词。我们是否可以为$Role中的每个单词保存它们,如$Role[0]、$Role[1]等?@SarikaThapaliya:为此,您可能需要使用
tokenize()
的XSLT 1.0实现。这可以作为XSLT处理器中的扩展提供,也可以通过提供XSLT 1.0实现。谢谢,但唯一的问题是$Role参数中可能有多达5个甚至更多的逗号分隔单词。我们是否可以为$Role中的每个单词保存它们,如$Role[0]、$Role[1]等?@SarikaThapaliya:为此,您可能需要使用
tokenize()
的XSLT 1.0实现。这可以作为XSLT处理器的扩展,也可以通过提供XSLT1.0实现。