私はすでに新しい問題を抱えています。 私はxsl経由でリストをマージしなければなりません。この問題は、ルックアップリストのキーが2つの値でconcatinatedされなければならないということです。 リストは相対的に大きく、数千、数千、場合によっては両方のリストのエントリがさらに大きくなります。このリストのサイズが大きくなる前に、私はパフォーマンスとメモリを調べなければなりません。これは後でWebサービスクライアントで実装されるため、迅速かつリソースを節約する必要があります。他のメインノードからのサブコンテキストを持つXSL for-eachフィルタ
List1とList2の既存の要素をマージして複雑ではありませんでしたが、他のリストの存在しない要素で両方のリストをチェックする必要があります。 for-each select文を無効にしようとしましたが失敗しました。おそらく間違った方法です。
InputXML-例
<ROOT>
<getObjectListResponse>
<item>
<Key>1111111:aaaa</Key>
<someOhterData>Text</someOhterData>
</item>
<item>
<Key>2222222:bbbb</Key>
<someOhterData>Text</someOhterData>
</item>
<item>
<Key>3333333:aaaa</Key>
<someOhterData>Text</someOhterData>
</item>
</getObjectListResponse>
<LookupList>
<DATA>
<KeyPart1>1111111</KeyPart1>
<KeyPart2>aaaa</KeyPart2>
<someOhterData>Text</someOhterData>
</DATA>
<DATA>
<KeyPart1>1111111</KeyPart1>
<KeyPart2>bbbb</KeyPart2>
<someOhterData>Text</someOhterData>
</DATA>
<DATA>
<KeyPart1>2222222</KeyPart1>
<KeyPart2>aaaa</KeyPart2>
<someOhterData>Text</someOhterData>
</DATA>
<DATA>
<KeyPart1>2222222</KeyPart1>
<KeyPart2>bbbb</KeyPart2>
<someOhterData>Text</someOhterData>
</DATA>
<DATA>
<KeyPart1>3333333</KeyPart1>
<KeyPart2>aaaa</KeyPart2>
<someOhterData>Text</someOhterData>
</DATA>
<DATA>
<KeyPart1>3333333</KeyPart1>
<KeyPart2>bbbb</KeyPart2>
<someOhterData>Text</someOhterData>
</DATA>
</LookupList>
</ROOT>
最初の部分、両方のリスト内の既存の部品がすでに行われて見つけます。 2番目の部分は、リスト1からリスト2、リスト2からリスト1への存在しない部分を見つけることです。 for-eachでこれを行いたいので、List1から存在しないエントリのみを取得しますリスト2にある。 問題は、LookupListのすべてのDATAからconcatinatedキーを使ってfor-eachコンテキストを検索することです。
<xsl:for-each select="/*/getObjectListResponse/item[Key/text() != /*/LookupList/DATA/*[concat(KeyPart1,'/',KeyPart2)]]">
<xsl:copy-of select="."/>
</xsl:for-each>
<xsl:for-each select="/*/getObjectListResponse/item[Key/text() != /*/LookupList/DATA/[concat(KeyPart1,'/',KeyPart2)]]">
<xsl:copy-of select="."/>
</xsl:for-each>
しかし、私が試したすべてが失敗し、結果も間違っています。
どうすればいいですか?
私はこれを試しましたが、他のものも試しましたが、何も動作しません。予め
おかげ
お試しいただきありがとうございます。 –