AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XML parsen, aber wie

Ein Thema von stifflersmom · begonnen am 29. Mär 2017 · letzter Beitrag vom 2. Jul 2021
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.432 Beiträge
 
Delphi 12 Athens
 
#1

AW: XML parsen, aber wie

  Alt 29. Mär 2017, 16:21
Moin...

Ich wollte mich eigentlich heraushalten.

Was habt ihr gegen einen XML Parser? ( ausgenommen die die das auch vorgeschlagen haben) Es gibt nicht nur die mit dem Overhead von TXMLDocument...

Beispiel (mit himXML):
Delphi-Quellcode:
uses
  himXML;
...
XML: TXMLFile;
...
XML := TXMLFile.Create;
...
XML.LoadFromFile(FFileName); //XML.LoadFromStream(Stream);
ErrorString := XML.Node['Errors'].Node['ErrorCode'].Text_S; // Beispiele für Node Bezeichnungen :-)
...fertsch.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: XML parsen, aber wie

  Alt 29. Mär 2017, 16:42
Hallo,
nicht wenn das so aussieht

<value><string>ErrorCode</string></value>
<value><string>200</string></value>
<value><string>300</string></value>
</data></array></value>

Oder müsste das nicht so aussehen?

<value><array><data>
<value><string>ErrorCode</string></value>
<value><string>200</string></value>
<value><string>ErrorCode</string></value>
<value><string>300</string></value>
</data></array></value

?
Heiko
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: XML parsen, aber wie

  Alt 29. Mär 2017, 17:35
Es gibt in einer Antwort des Servers nur einen ErrorCode, nämlich den zu den abgefragten Daten.

Ein Satz kann immer nur einen Fehlercode enthalten sein.

Hier jetzt Probleme zu lösen, die nur dann auftreten, wenn man eine nicht der Spezifikation entsprechende Antwort bekommt, halte ich für übertrieben.
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
383 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: XML parsen, aber wie

  Alt 29. Mär 2017, 17:43
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
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
601 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: XML parsen, aber wie

  Alt 30. Mär 2017, 07:57
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.361 Beiträge
 
Delphi 12 Athens
 
#6

AW: XML parsen, aber wie

  Alt 30. Mär 2017, 08:31
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;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
ioster

Registriert seit: 15. Aug 2008
84 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: XML parsen, aber wie

  Alt 22. Jun 2021, 10:51
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
  Mit Zitat antworten Zitat
Edelfix

Registriert seit: 6. Feb 2015
Ort: Stadtoldendorf
234 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: XML parsen, aber wie

  Alt 22. Jun 2021, 11:23
Es ist doch normale Nodes die zufällig "params" heissen.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#9

AW: XML parsen, aber wie

  Alt 22. Jun 2021, 12:30
Du solltest am besten einen Link posten wo man sich das XML in ganzer Schönheit anschauen kann.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz