我需要將多個XML文件(以標準格式)轉換和編譯爲單個CSV文件。因爲我還需要對某些導入的元素執行計算,所以除非我對每個轉換的CSV文件執行計算,否則XSLT不是一個選項(Stackoverflow:XML to CSV Using XSLT)。使用JAVA計算,轉換和編譯XML到CSV
XPath已被建議作爲SAX2的替代品,但由於最終的CSV輸出很大(基於超過100個XML文件),我對使用數組猶豫不決。 (使用SAX2)我在提取標記元素方面有些成功。
如果我可以將輸出(對於每個單獨的文件)追加到最終的CSV輸出,我假設我將擁有更多內存穩定的應用程序。
我希望其他人能從瞭解問題的答案中獲益:我如何有效地處理與大規模數據的XML-CSV轉換相關的計算?
XML文件1
<element id="1">
<info>Yes</info>
<startValue>0</startValue> <!-- Value entered twice, ignore--!>
<startValue>256</startValue>
<stopValue>64</stopValue>
</element>
<element id="2">
<info>No</info>
<startValue>50</startValue>
<stopValue>25</stopValue>
</element>
<....
XML文件2
<element id="1">
<info>No</info>
<startValue>128</startValue>
<stopValue>100</stopValue>
</element>
<....
Pseudopseudocode
for all files
get ID
get info
for all stop and start values
ignore wrong values: use counter
difference[] = startValue(i) - stopValues(j) = 196, 28
append (ID, info and difference) to file "outputfile.csv"
CSV Eutput例
File ID Info Difference Etc
_________________________________________________
0 1 Yes 196 ....
0 2 No 25 ....
1 1 No 28 ....
. ... ... ....
. ... ... ....
nfiles
Thanks user393274! – noumenal 2011-12-17 17:28:14