私はCSVからXMLへの変換に取り組んでいますが、これを行うには多くの方法がありますが、私の要件は、将来的にコードを変更せずにマッピングを変更できるようにすることです. そのため、次のアプローチを使用しています。統合にApacheキャメルを使用しているため、CSVはキャメルによってすぐに変換され、次のList<List<String>>
ようなデータとともに提供されます
{[header1,header2,header3],[1,2,3],[2,4,5]}
XStream
このリスト データを定義済みの形式である XML に変換する必要がありますが、Java マッピングを使用できないため、 xslt を使用して生の XML をマッピングするよりも、このリストをフラットな XML ファイルに変換するようなことを計画していました。ファイルをxsltに変換しますが、XStreamでリストをXMLに変換すると、次の出力が得られます
<list>
<java.util.Arrays_-ArrayList>
<a class="string-array">
<string>Quantity</string>
<string>Price</string>
<string>Total</string>
<string>Date</string>
<string>ID</string>
<string>Name</string>
<string>Ref#</string>
</a>
</java.util.Arrays_-ArrayList>
<java.util.Arrays_-ArrayList>
<a class="string-array">
<string>4</string>
<string>1.13</string>
<string>4.52</string>
<string>9/4/2008</string>
<string>275</string>
<string>Blue Ink</string>
<string>49385730</string>
</a>
</java.util.Arrays_-ArrayList>
<java.util.Arrays_-ArrayList>
<a class="string-array">
<string>5</string>
<string>2.16</string>
<string>2.16</string>
<string>8/3/2008</string>
<string>229</string>
<string>Red Ink</string>
<string>20549348</string>
</a>
私のサンプルCSVは
Quantity,Price,Total,Date,ID,Name,Ref#
4,1.13,4.52,9/4/2008,275,Blue Ink,49385730
5,2.16,2.16,8/3/2008,229,Red Ink,20549348
そのため、XSLT を使用してこの生の XML を必要な XML にマップすることはできないようです。この List データをより表現しやすい XML 形式に変換して、その XML を XSLT にマップしてコードの変更を回避する方法はありますか。または、このリストを XML 構造に変換するより効率的な方法は他にありますか
前もって感謝します