1

2 つのサンプル xml を以下に示します。

xml1:

<Root>
  <Child1/>
  <Child2/>
  <Child3/>
</Root>

xml2:

<Root>
  <Child0>xml2value</Child0>
  <Child2/>
  <Child3>xml2value</Child3>
  <Child4>xml2value</Child4>
</Root>

これら 2 つの xml を 2 つの変数で取得しました。ここで、xml1 に存在しない要素を xml2 からフィルタリングします。つまり、結果の変数は次のようになります。

<Child0>xml2value</Child0>
<Child4>xml2value</Child4>

xsltでどのように行うことができますか?

4

2 に答える 2

0

以下のコードで問題を解決しました。

               <xsl:variable name="output">
                <xsl:for-each select="$xml2/Root/*">
                  <xsl:variable name="cur" select="local-name(.)"/>
                  <xsl:if test="not($xml1/Root/*[local-name(.)=$cur])">
                    <xsl:copy-of select="."/>
                  </xsl:if>
                </xsl:for-each>
               </xsl:variable>
于 2013-09-16T12:33:06.970 に答える