Hallo,
ich habe ein Problem mit dem XMLFileSplitter, dieser wirft mir immer eine nichtssagende IndexOutOfBoundException, also ohne Angabe, wo dieser stattfindet.
Vorgehen:
Ich erstelle mithilfe des TextHTMLWriters eine XML Struktur aus einem Spreadsheet, diesen "String" wandle ich mithilfe des File2String in eine XML Datei um. Hier ein kleiner Ausschnitt der XML Datei:
<?xml version="1.0" encoding="UTF-8"?>
<Sale xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Exportdate="20170913T10:47:28" Exporttype="Sale" Branchno="XXX">
<Item>
<Itemno>123456</Itemno>
<Cost>19.95</Cost>
<Saleqty>1.00</Saleqty>
<Dateoftrans>20170904</Dateoftrans>
<Type>S</Type>
<Empno></Empno>
<Refno><![CDATA[]]></Refno>
<Branchno></Branchno>
<Customerid></Customerid>
</Item>
</Sale>
<Sale xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Exportdate="20170913T10:47:28" Exporttype="Sale" Branchno="XYXY">
<Item>
<Itemno>8910101</Itemno>
<Cost>19.95</Cost>
<Saleqty>1.00</Saleqty>
<Dateoftrans>20170904</Dateoftrans>
<Type>S</Type>
<Empno></Empno>
<Refno><![CDATA[]]></Refno>
<Branchno></Branchno>
<Customerid></Customerid>
</Item>
<Item>
<Itemno>98765</Itemno>
<Cost>24.95</Cost>
<Saleqty>1.00</Saleqty>
<Dateoftrans>20170904</Dateoftrans>
<Type>S</Type>
<Empno></Empno>
<Refno><![CDATA[]]></Refno>
<Branchno></Branchno>
<Customerid></Customerid>
</Item>
</Sale>
Wie man sehen kann ist das Sale-Tag hier mehrmals vorhanden kann auch mehrere Items enthalten. Das Sale Tag beinhaltet Attribute, die je nach Zeile aus dem Spreadsheet variieren können, als festen Header kann ich dies also nicht angeben.
Das Problem ist nun, dass pro Sale Tag eine neue XML-Datei erstellt werden muss.
Ich habe bereits versucht jeden Sale Tag einfach mit einem künstlich erstellten <Test> Tag zu umschließen, um dann an dem Test-Tag zu splitten, leider ohne großen Erfolg (weiterhin IndexOutOfBounds).
Wie splitte ich die XML nun entsprechend ?