私の要件は多少複雑one.Iは、以下の入力XMLを持っている値:ノードに基づいてXMLを変換すること
<results>
<row>
<CASEID>C1</CASEID>
<CASEBA>MEDICAID</CASEBA>
<ISSUEID>I1</ISSUEID>
<ISSUEBA>MEDICAID</ISSUEBA>
<OBJECTID>1</OBJECTID>
</row>
<row>
<CASEID>C1</CASEID>
<CASEBA>MEDICAID</CASEBA>
<ISSUEID>I2</ISSUEID>
<ISSUEBA>MEDICAID</ISSUEBA>
<OBJECTID>2</OBJECTID>
</row>
<row>
<CASEID>C1</CASEID>
<CASEBA>MEDICAID</CASEBA>
<ISSUEID>I1</ISSUEID>
<ISSUEBA>MEDICAID</ISSUEBA>
<OBJECTID>extra</OBJECTID>
</row>
<row>
<CASEID>C2</CASEID>
<CASEBA>MEDICAID</CASEBA>
<ISSUEID>I3</ISSUEID>
<ISSUEBA>MEDICAID</ISSUEBA>
<OBJECTID>3</OBJECTID>
</row>
</results>
私は、以下の条件に従うことによって、XSLTを使用したシンプルなものに上記のXMLを変換する必要があります。
1)最初のターゲットは、新しい<CASE>
タグの下にある値が等しいすべての<CASEID>
を<CASEBA>
ノードに移動することです。例については
:
<CASE>
<CASEID>C1</CASEID>
<CASEBA>MEDICAID</CASEBA>
</CASE>
2)一覧うち<CASEID>
年代異なる<row>
が等しい年代と最近作成<CASE>
タグ内に新しいタグ<ISSUE>
の下に移動し、すべての<ISSUEID>
& <ISSUEBA>
。例えば
:
<CASE>
<CASEID>C1</CASEID>
<CASEBA>MEDICAID</CASEBA>
<ISSUE>
<ISSUEID>I1</ISSUEID>
<ISSUEBA>MEDICAID</ISSUEBA>
</ISSUE>
<ISSUE>
<ISSUEID>I2</ISSUEID>
<ISSUEBA>MEDICAID</ISSUEBA>
</ISSUE>
</CASE>
3)一覧すべてのアウト "その<ISSUEID>
の年代別の<row>
年代が等しく、間違いなく下になります<ISSUE>
タグ内に新しい<SOURCE>
タグの下にそれらを移動<OBJECTID>
<CASE>
。 例えば:
<CASE>
<CASEID>C1</CASEID>
<CASEBA>MEDICAID</CASEBA>
<ISSUE>
<ISSUEID>I1</ISSUEID>
<ISSUEBA>MEDICAID</ISSUEBA>
<SOURCE>
<OBJECTID>1</OBJECTID>
</SOURCE>
<SOURCE>
<OBJECTID>extra</OBJECTID>
</SOURCE>
</ISSUE>
<ISSUE>
<ISSUEID>I2</ISSUEID>
<ISSUEBA>MEDICAID</ISSUEBA>
<SOURCE>
<OBJECTID>2</OBJECTID>
</SOURCE>
</ISSUE>
</CASE>
最終出力XMLは以下のようにする必要があります:
<results>
<CASE>
<CASEID>C1</CASEID>
<CASEBA>MEDICAID</CASEBA>
<ISSUE>
<ISSUEID>I1</ISSUEID>
<ISSUEBA>MEDICAID</ISSUEBA>
<SOURCE>
<OBJECTID>1</OBJECTID>
</SOURCE>
<SOURCE>
<OBJECTID>extra</OBJECTID>
</SOURCE>
</ISSUE>
<ISSUE>
<ISSUEID>I2</ISSUEID>
<ISSUEBA>MEDICAID</ISSUEBA>
<SOURCE>
<OBJECTID>2</OBJECTID>
</SOURCE>
</ISSUE>
</CASE>
<CASE>
<CASEID>C2</CASEID>
<CASEBA>MEDICAID</CASEBA>
<ISSUE>
<ISSUEID>I3</ISSUEID>
<ISSUEBA>MEDICAID</ISSUEBA>
<SOURCE>
<OBJECTID>3</OBJECTID>
</SOURCE>
</ISSUE>
</CASE>
</results>
私はきちんと私の要件を説明していない場合はご容赦ください。追加情報が必要な場合は私に尋ねてください。もし誰かが私を助けてくれたら本当に素晴らしいだろう。
XSLT 1または2?これは、これがどのくらい複雑になるかに大きな違いをもたらします。 –
@ G_H、お返事ありがとうございます。 XSLT 2が必要です。 ' –
これは標準的なグループ化アプリケーションです。 XSLTの教科書やチュートリアルでコードをグループ化する例があります。 XSLT 2.0では、XSLT 1.0よりもグループ化がはるかに簡単です。 –