簡體   English   中英

XSLT 1.0-如何比較兩個節點集值

[英]XSLT 1.0 - How to compare two node-set values

比較兩個節點集,並得到一個只有唯一值的新節點集

具體來說,創建nodeset3,其中值在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)" />
  <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>

對不起,花了一些時間,但知道了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM