XML Import: Finde den Namen des root Elements

11. Juli 2019 11:22

Hallo,
ich habe zwei verschiedene XML Dateien zum Import. In der einen heißt das root-Element "Items", in der anderen "Shipments".
Anhand des Dateinamens kann ich leider nicht festmachen, was drin ist.
Meine Idee war einen "Dummy"-XML-Port aufzurufen, der nur den Namen des root-Elements herausfindet, und dann den passenden XMLPort "Import Items" oder "Import Shipments" aufruft.
Hat dazu jemand eine Idee?
Hier mal je ein Beispiel mit Spiel-Daten:

Code:
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<Items>
  <ItemTable>
    <Item ItemNo="101637" Description="Glen Elgin 12Y. 0,7l Fl." ReferenceNo="581352" UnitSize="STK" Price="42.95" />
    <Item ItemNo="102587" Description="Glen Grant Scotch 0,7l Fl." ReferenceNo="" UnitSize="" Price="2.99" />
    <Item ItemNo="102633" Description="Glen Edwards Pure Malt 0,7l Fl" ReferenceNo="7000" UnitSize="STK" Price="11.27731" />
    <Item ItemNo="110496" Description="Glen Grant 40% 0,7l Fl." ReferenceNo="glgr" UnitSize="STK" Price="16.91597" />
    <Item ItemNo="125008" Description="Glen Alpin Scotch Wh. 1l" ReferenceNo="201001027" UnitSize="STK" Price="12.32381" />
    <Item ItemNo="300512" Description="Glen Grant 40% 1,0l Fl." ReferenceNo="20706082" UnitSize="STK" Price="22.82" />
    <Item ItemNo="405662" Description="Glen Moray Classic 0,7l Fl." ReferenceNo="glmor" UnitSize="STK" Price="22.40784" />
  </ItemTable>
</Items>


Code:
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<Shipments fromDate="27.03.19" toDate="27.03.19">
  <ShipmentTable>
    <Shipment No="EB0080806" Vendor="73010" PostingDate="">
      <OrderLineTable>
        <OrderLine Type="2" Description="Cola 24x0,33l" ItemReferenceNo="4000" Quantity="297" Unit="24er tray" UnitPrice="1.12" />
        <OrderLine Type="2" Description="My Beer 24x0,33l" ItemReferenceNo="1007" Quantity="198" Unit="Stk" UnitPrice="4.56" />
      </OrderLineTable>
    </Shipment>
  </ShipmentTable>
</Shipments>

Re: XML Import: Finde den Namen des root Elements

11. Juli 2019 12:41

Ich würde die Datei als XML einlesen, danach überprüfen welches Root Element vorhanden ist und anhand dessen den benötigten XML Port auswählen.

Re: XML Import: Finde den Namen des root Elements

11. Juli 2019 13:57

Ja, das war auch meine Idee, aber wenn ich das root-Element als "root" benenne, bekomme ich die Fehlermeldung: "Die importierte XML Datei kann nicht mit dem folgenden Schema überprüft werden: das Shipment-Element wurde nicht deklariet".
Benenne ich aber das erste Element im Import als "Shipment", bekomme ich natürlich dieselbe Fehlermeldung, wenn ich eine "Items" Datei einlese.

Irgendeinen Namen muss das erste (root-) Element haben. Wenn dann aber das erste Element der importierten Datei anders heißt, kommt der besagte Fehler.