AW: XML parsen, aber wie
Ich hätte nicht gedacht, einen solchen Glaubenskrieg zu entfesseln....
Ich habe mich jetzt für eine sehr überschaubare Lösung mit Entfernen aller Zeilenumbrüche und nschließendem Pos entschieden, war halt einfach schnell zusammen getippt und da die "xml" Datei dieses feste Format aufweist, scheint mir diese Lösung auch durchaus gerechtfertigt zu sein. Danke aber trotzdem für die vielen Vorschläge |
AW: XML parsen, aber wie
Zitat:
Ciao Stefan |
AW: XML parsen, aber wie
Zitat:
Ganz ehrlich, wenn man XML Daten hat, dann nutzt einen XML Parser, auch wenn diese selbst erstellt wurden. Vielleicht finden man ja doch mal einen Fehler, oder aktualisiert die Library, welche man nutzt... Und dann gibt es Probleme. Etwas anderes als einen XML Parser vorzuschlagen ist hier schlicht und ergreifend fahrlässig, insbesondere wenn schon im ersten Post klar wird, dass die Daten von extern kommen... Und um auch noch einen Nutzen dazu zu bringen, wenn das XML Document geladen ist, ist hier die XPath-Query für die Fehlerbeschreibung:
Code:
und den Fehlercode:
//params/param[2]/value/array/data/value[1]/string
Code:
...:cat:...
//params/param[2]/value/array/data/value[2]/string
|
AW: XML parsen, aber wie
Und über einen passende RPC-Objekt-Bibliothek würde in etwa sowas rauskommen.
Delphi-Quellcode:
RPCObject := RPCHandler.GetIrgendwas('DE123456789', 'AB1234567890', '', '', '', ''); // UstId_1, UstId_2, Firmenname, Ort, PLZ, Strasse, Druck
UstId_1 := RPCObject.UstId_1; ErrorCode := RPCObject.ErrorCode; |
AW: XML parsen, aber wie
Moin,
ich muss das hier angesprochene Ursprungsproblem mit der Auswertung der XML-RPC-Schnittstelle des Bundeszentralamtes für Steuern ebenfalls lösen. Bei Betrachtung der Schnittstellenbeschreibung hatte ich angenommen, dass es kein Hexenwerk ist. Nachdem ich nun über die Klippe von TLS 1.2 mit Indy gesprungen bin, suche ich nun nach der Auflösung des Rätsels, wie ich auf die einzelnen Parameter eines XML-Objektes zugreifen kann, wenn es keine klassischen Nodes sondern Params sind. Die Code-Schnipsel, die ich bisher gefunden habe, helfen mir leider nicht weiter, weil ich die Methoden in meiner IDE nicht finden kann. Was hat es mit XPath auf sich und wie kann ich darüber auf die einzelnen Param-Einträge zugreifen? So in etwa sieht das Dokument aus, das von der Schnittstelle zurückgegeben wird: <params> <param> <value><array><data><value><string>UstId_1</string></value> <value><string>DE123456789</string></value></data></array></value> </param> <param> <value><array><data> <value><string>ErrorCode</string></value> <value><string>201</string></value></data></array></value> </param> <param> <value><array><data><value><string>UstId_2</string></value> <value><string>PL123456789</string></value></data></array></value> </param> Viele Grüße Ingo |
AW: XML parsen, aber wie
Es ist doch normale Nodes die zufällig "params" heissen.
|
AW: XML parsen, aber wie
Du solltest am besten einen Link posten wo man sich das XML in ganzer Schönheit anschauen kann.
|
AW: XML parsen, aber wie
Zitat:
Testweise geht aber vielleicht dieser Link. Viele Grüße Ingo |
AW: XML parsen, aber wie
Ich komme über folgenden Code auf 16 Childnodes, die allesamt PARAM als heißen.
Delphi-Quellcode:
Die Werte müsste ich doch nun über AttributeNodes lesen können oder wie muss ich mir das nun vorstellen?
if not(XMLDok.IsEmptyDoc) then
begin for AktNode := 0 to XMLDok.DocumentElement.ChildNodes.Count - 1 do begin : end; end; Gruß Ingo |
AW: XML parsen, aber wie
Ich würde je Knotenebene FindNode und NextSibling verwenden, um durch die Kindknoten derselben Ebene zu navigieren.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz