0

私は次のようにドラフトされたxmlを持っています

<node1>
  <node2>
    <node3>
      val3
    </node3>
    <node4>
      val4
    </node4>
    <node5>
     val5
    </node5>
    <node6>
      val6
    </node6>
  </node2>
</node1>

xslt を使用してループするようになりました。結果にと<node2> のみの​​値を含めたいと思います。私がしていることは<node4><node5>

<xsl:for-each select="/node1/node2[.= node4 or .= node5]/*>
  <newNode>
    value of selected nodes
  </newNode>
</xsl:for-each>

も試しました

<xsl:for-each select="/node1/node2[name() = node4 or name() = node5]/*>
      <newNode>
        value of selected nodes
      </newNode>
    </xsl:for-each>

<xsl:for-each select="/node1/node2[.name()= node4 or .name()= node5]/*>
      <newNode>
        value of selected nodes
      </newNode>
    </xsl:for-each>

しかし、4つのノードすべて、つまりnode3、node4、node5、およびnode6の値を取得しています

誰でも私を正しい方向に向けることができますか?

4

2 に答える 2

-1

私自身はテンプレートを使用せずに答えを得ました上記の答えも正しいかもしれませんが、以下は私にとって魅力のように機能しました

<xsl:for-each select="/node1/node2/*[name()= node4 or name()= node5]>
      <newNode>
        value of selected nodes
      </newNode>
    </xsl:for-each>
于 2013-05-23T06:05:25.470 に答える