XSLT 1.0 - 如何比较两个节点集值

时间:2016-03-16 22:30:32

标签: xml xslt xslt-1.0 node-set

比较两个节点集并获取一个仅具有唯一值的新节点集         结果

要具体创建nodeset3,其中value在nodeset1中,但不在nodeset2中 (所以基本上nodeset3 =集合论中的nodeset1-nodeset2)。

这是节点集1,带有一些值

<xsl:variable name="node1">
  <footnotes>
    <fn>a</fn>
    <fn>b</fn>
    <fn>c</fn>
    <fn>d</fn>
  </footnotes>
</xsl:variable>
<xsl:variable name="nodeset1" select="msxml:node-set($node1)" />

这里是nodeset2

             一个        b              

结果应该是

 nodeset3
<footnotes>
  <fn>c</fn>
  <fn>d</fn>
</footnotes>

我试过这个没有成功

<xsl:variable name="node3">
  <xsl:for-each select="$nodeset1/fn">
    <xsl:if test="$nodeset2 != ./text()">
      <fn2>
        <xsl:value-of select="."/>
      </fn2>
    </xsl:if>
  </xsl:for-each>
</xsl:variable>
<xsl:variable name="nodeset3" select="msxml:node-set($node3)" />

1 个答案:

答案 0 :(得分:0)

  <xsl:variable name="node3">  
<xsl:for-each select="$nodeset1/fn">
<xsl:if test="not($nodeset2/element =current()/text())">
<fn><xsl:value-of select="."/></fn>
</xsl:if>
</xsl:for-each>
</xsl:valieable>

抱歉花了一些时间但得到了它

相关问题