View Full Version : HTML-File einlesen mit XML-INTO
Hallo zusammen,
ich möche mit XML-INTO ein HTML-File einlesen, was nur zum Teil funktioniert.
Ich weiss, daß man das mit qualifizierten Strukturen gebacken bekommt.
Das HTML ist wie folgt aufgebaut:
Ein Block mit Info-Feldern, dann folgt auf der selben Stelle ein Block mit Auftragskopfdaten und dann innerhalb der Kopfdaten ein Block mit Auftragspositionen (für 1 - n Positionen).
Ich bekomme einwandfrei ausgelesen die Auftragskopfdaten und die Positionen. Nur den
1. Block mit den Infofeldern bekomme ich nicht ausgelesen obwohl definiert. Was mache ich
falsch ? Für eine Info wäre ich dankbar.
Gruss A61
Dafür benötigst du 2 XML-Into, da nur 1 hierarchische Struktur eingelesen werden kann.
Dafür gibst du den Pfad der 1. oder 2. Hauptstruktur zum einlesen an.
Un da du das schon weißt, du benötigst qualifizierte und hierarchische DS'n.
Schau dir hierzu diesen Beitrag an:
http://newsolutions.de/forum-systemi-as400-i5-iseries/threads/21837-XML-Datei-einlesen
danke schon mal für die Info. Ich probiere es aus !
so sieht also das HTML aus. Und da reichen dann 2XML-INTO ?
einlesen kann ich die Daten vom Acknowledge-Block und Orderline-Block.
Den Document-Block nicht und die Daten aus dem Transactions-Block bekomme ich
auch nicht eingelesen.
<?xml version="1.0" encoding="utf-8"?>
<SHARK-ERP>
<Document>
<Type>SHARKLINEACK</Type>
<Date>2019-08-21 15:09:04</Date>
<Sender>SHARKLINK</Sender>
<Receiver>HOST</Receiver>
<DocNumber>583</DocNumber>
</Document>
<Acknowledge>
<Status>OK</Status>
<OrderTypeID>17</OrderTypeID>
<OrderType>6</OrderType>
<OrderNumber>KM#0000000011</OrderNumber>
<DeliveryDate>2019-08-21 15:09:03.877</DeliveryDate>
<Owner />
<DeliveryNoteNumber />
<Misc1 />
<Misc2 />
<Misc3 />
<Misc4 />
<Misc5 />
<Misc6 />
<Misc7 />
<Misc8 />
<Misc9 />
<Misc10 />
<OrderLine>
<Status>OK</Status>
<LineNumber>1</LineNumber>
<ArticleNumber>00305397</ArticleNumber>
<QtyOrdered>10.00</QtyOrdered>
<Qty>10.00</Qty>
<CostCenter />
<CostCenterText />
<User>adm</User>
<Time>2019-08-21 15:09:03</Time>
<Misc1 />
<Misc2 />
<Misc3 />
<Misc4 />
<Misc5 />
<Transactions>
<Transaction>
<Qty>10.00</Qty>
<LocationAddress>A2-1-A1</LocationAddress>
<Zone>A</Zone>
<User>adm</User>
<BatchNumber />
</Transaction>
</Transactions>
</OrderLine>
</Acknowledge>
</SHARK-ERP>
haut irgendwie nicht hin !
Hallo zusammen, muss leider nochmals stören :-)
wenn ich also jetzt 2 XML-INTO brauche, da in meinem HTML 2 Blöcke auf höchster Hierarchie vorhanden sind, wie sähen denn dann die Aufrufe aus ?
ich habe in meinem Programm bisher folgendes codiert:
XML-INTO SHARK_ERP %xml(XMLName : XMLOption);
SHARK_ERP ist wie folgt definiert:
SHARK_ERP DS Qualified
Acknowledge Likeds(Acknowledge)
Acknowledge ist einer der Blöcke auf der höchsten Ebene. Darunter sind noch Unterstrukturen. Die Daten dort werden aber allesamt korrekt ausgelesen (auch die in den Unterstrukturen).
Der andere Block heisst Document und steht ebenfalls auf höchster Ebene (ohne Unterstrukturen, nur mit ein paar Feldern). Das will ich aber auch ausgelesen haben.
wie muss ich also die 2 XML-INTO codieren. Für Infos besten Dank und schönes WE.
Alex
und dann habe ich noch eine Frage:
wenn ich im HTML einen langen Feldnamen habe, den ich im Programm nicht unterbekomme, was kann ich dann tun (Editor mault) ?
Beispiel (Alternativearticlenumber):
D Article DS Qualified
D ID 30
D Articlenumber 30
D Alternatvivearticlenumber 30
Wenn Du Fix-Format D-Bestimmungen verwendest musst Du eine Fortsetzungszeile verwenden.
Der Umbruch wird durch 3 aufeinanderfolgende Punkte gekennzeichnet.
Beispiel:
D AlternativeArtikelNr...
D S 10A
D DerLangeName...
D kannAuchUeber...
D MehrereZeilen...
D Umgebrochen...
D Werden S 10A
Ich würde Dir allerdings Free-Format D-Bestimmungen empfehlen:
DCL-S AlternativeArtikelNr Char(10);
Birgitta
ganz lieben Dank für die Antwort. Toll, das ging schon mal !!
Hast Du evtl. auf die Frage vorher auch eine Info :-) ?
Wenn ja, vielleicht einen kurzen Rat nur. Ich sage schon mal danke und ein schönes WE
Alex
Du brauchst eine DS "Transactions", die ein Array von "Transaction"-DS'n enthält.
Transaction selber besteht nur aus Feldern ohne weitere Strukturen.
RPGLE unterscheidet nicht zwischen Knoten und Attributen.