检查两个数组是否在XSLT中具有匹配项

时间:2012-09-28 13:10:56

标签: xslt

我有这两个数组:

<xsl:variable name="array1" select="umbraco.library:Split($currentPage/websiteThemes, ',')//value"/>
<xsl:variable name="array2" select="umbraco.library:Split($currentPage/websiteThemes2, ',')//value"/>

我想看看数组中哪些元素匹配。我怎么能做到这一点?

这是来自array1和array2的副本的输出:

ARRAY1:

<value>1087</value><value>1002</value><value>3202</value>

数组2:

<value>1087</value><value>1577</value>

在这个例子中,我想得到值1087作为我的结果。

1 个答案:

答案 0 :(得分:2)

这个问题不太清楚,但我希望这能解决所提出的问题:

此转化

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:variable name="vArr1" select="/*/arr1/*"/>
 <xsl:variable name="vArr2" select="/*/arr2/*"/>

 <xsl:template match="/">
     <xsl:copy-of select="$vArr1[. = $vArr2]"/>
 </xsl:template>
</xsl:stylesheet>

应用于此XML文档(问题中未提供!):

<t>
 <arr1>
  <value>1087</value>
  <value>1002</value>
  <value>3202</value>
 </arr1>
 <arr2>
  <value>1087</value>
  <value>1577</value>
 </arr2>
</t>

产生(我想是的)想要的结果

<value>1087</value>