Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   XML parsen, aber wie (https://www.delphipraxis.net/192207-xml-parsen-aber-wie.html)

stifflersmom 29. Mär 2017 17:43

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

sko1 30. Mär 2017 07:57

AW: XML parsen, aber wie
 
Zitat:

da die "xml" Datei dieses feste Format aufweist, scheint mir diese Lösung auch durchaus gerechtfertigt zu sein.
Bis das Bundesamt da mal an der Formatierung dreht...

Ciao
Stefan

sakura 30. Mär 2017 08:09

AW: XML parsen, aber wie
 
Zitat:

Zitat von himitsu (Beitrag 1365850)
Warum versuchen eigentlich ständig Alle auf Biegen und Brechen nicht das zu verwenden, was dafür gedacht ist?

Ich war schon leicht schockiert das hier alle mit Pos etc. arbeiten wollen. DANKE!

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:
//params/param[2]/value/array/data/value[1]/string
und den Fehlercode:
Code:
//params/param[2]/value/array/data/value[2]/string
...:cat:...

himitsu 30. Mär 2017 08:31

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;

ioster 22. Jun 2021 10:51

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

Edelfix 22. Jun 2021 11:23

AW: XML parsen, aber wie
 
Es ist doch normale Nodes die zufällig "params" heissen.

Codehunter 22. Jun 2021 12:30

AW: XML parsen, aber wie
 
Du solltest am besten einen Link posten wo man sich das XML in ganzer Schönheit anschauen kann.

ioster 22. Jun 2021 12:42

AW: XML parsen, aber wie
 
Zitat:

Zitat von Codehunter (Beitrag 1491375)
Du solltest am besten einen Link posten wo man sich das XML in ganzer Schönheit anschauen kann.

Der Aufbau wird auf Seite 1 dieses Threads dargestellt. Eine URL kann man nicht so ohne weiteres einstellen, weil die Abfrage eigentlich eine gültige Umsatzsteuer-Identnummer benötigt.

Testweise geht aber vielleicht dieser Link.

Viele Grüße
Ingo

ioster 22. Jun 2021 12:45

AW: XML parsen, aber wie
 
Ich komme über folgenden Code auf 16 Childnodes, die allesamt PARAM als heißen.

Delphi-Quellcode:
if not(XMLDok.IsEmptyDoc) then
  begin
    for AktNode := 0 to XMLDok.DocumentElement.ChildNodes.Count - 1 do
      begin
       :
      end;
  end;
Die Werte müsste ich doch nun über AttributeNodes lesen können oder wie muss ich mir das nun vorstellen?

Gruß
Ingo

DeddyH 22. Jun 2021 13:30

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.
Seite 3 von 4     123 4      

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