Arrays 匹配数组中的值(XSLT)

Arrays 匹配数组中的值(XSLT),arrays,xslt,xslt-1.0,Arrays,Xslt,Xslt 1.0,我将从XML文件中获取一个值, e、 g 男人 然后,我想在XSLT1.0中创建一个数组, e、 g 男人 女人 如果XML文件中的值与数组中的一个项匹配,它将返回true。 有人能告诉我怎么做吗?? 谢谢大家! 您似乎在寻找exsl:node set的扩展函数。看看: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.or

我将从XML文件中获取一个值, e、 g

男人
然后,我想在XSLT1.0中创建一个数组, e、 g


男人
女人
如果XML文件中的值与数组中的一个项匹配,它将返回true。 有人能告诉我怎么做吗??
谢谢大家!

您似乎在寻找exsl:node set的扩展函数。看看:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl">

  <xsl:param name="InputArray">
    <array>
      <Item>Men</Item>
      <Item>Women</Item>
    </array>
  </xsl:param>

  <xsl:param name="InputItem">
    <WORD>Men</WORD>
  </xsl:param>

  <xsl:template match="/">
    <xsl:choose>
      <xsl:when test="exsl:node-set($InputArray)//Item[text()=exsl:node-set($InputItem)//text()]">
        <xsl:text>Yes</xsl:text>
      </xsl:when>
      <xsl:otherwise>
        <xsl:text>No</xsl:text>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>

男人
女人
男人
对
不

男人
女人
注:

  • 使用临时名称空间在XSLT程序中存储配置
  • 使用
    exclude result prefixes
    来防止临时名称空间泄漏到结果文档中
  • 使用
    文档(“”)
    从其内部访问内容样式表

如果$doc//WORD=$table//item被适当地绑定,则条件
$doc//WORD=$table//item
在需要时为true,在需要时为false

我不明白你为什么要这样做。如果“数组”中的数据像命名模板一样简单,并带有“选择时间”选项,则效果会更好。
<array>
<Item>Men</Item>
<Item>Women</Item>
</array>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl">

  <xsl:param name="InputArray">
    <array>
      <Item>Men</Item>
      <Item>Women</Item>
    </array>
  </xsl:param>

  <xsl:param name="InputItem">
    <WORD>Men</WORD>
  </xsl:param>

  <xsl:template match="/">
    <xsl:choose>
      <xsl:when test="exsl:node-set($InputArray)//Item[text()=exsl:node-set($InputItem)//text()]">
        <xsl:text>Yes</xsl:text>
      </xsl:when>
      <xsl:otherwise>
        <xsl:text>No</xsl:text>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>
<xsl:stylesheet 
  version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:exsl="http://exslt.org/common" 
  xmlns:internal="http://tempuri.org/config"
  exclude-result-prefixes="internal"
  extension-element-prefixes="exsl"
>
  <internal:config>
    <array>
      <Item>Men</Item>
      <Item>Women</Item>
    </array>
  </internal:config>

  <xsl:variable name="config" select="document('')/*/internal:config" />

  <xsl:template match="WORD">
    <xsl:if test="$config/array/Item[. = current()]">
      <xsl:value-of select="concat('The current value ', ., ' was found.')" />
    </xsl:if>
  </xsl:template>

</xsl:stylesheet>