XML auslesen - nicht Standard gerecht?

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
pascalts
Beiträge: 61
Registriert: Fr 10. Okt 2014, 13:16

XML auslesen - nicht Standard gerecht?

Beitrag von pascalts »

Hallöchen!

Ich habe wieder eine XML Datei, aus der ich diverse Informationen brauche. Leider bekomme ich einen "Exception-Class"-Fehler. Aber zurück. Es handelt sich um diese Datei: http://pastebin.com/v6em67ya , speiziell um folgenden Teil:

Code: Alles auswählen

       <DevParas>
        <DevPara DevID="257" VndID="432" DevIns="1" StatNLen="22" StatN="k3apsd324660r01ms-1ka1" IPovDNS="false">
          <IP d1="172" d2="22" d3="40" d4="224" />
          <Mask d1="255" d2="255" d3="255" d4="0" />
          <Gate d1="172" d2="22" d3="40" d4="1" />
          <Station ExCRC="1" />
          <DevName ExCRC="1" />
          <ModEquId ExCRC="1" />
          <FDCMLFile />
          <CEId />
        </DevPara>
      </DevParas>


Tricky daran ist, dass ich auslesen will, was bei <IP d1="172" d2="22" d3="40" d4="224" /> hinter d1, d2, d3 und d4 steht (in einen string schreiben mit Punkten dazwischen, aber erstmal auslesen wäre toll...). Die Wiki hilft mir an der stelle nicht weiter... hat jemand einen Vorschlag?

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: XML auslesen - nicht Standard gerecht?

Beitrag von Socke »

pascalts hat geschrieben:Leider bekomme ich einen "Exception-Class"-Fehler.

Wie ist die genaue Fehlermeldung?
pascalts hat geschrieben:hat jemand einen Vorschlag?

Quelltext posten.

P.S.
Das XML-Dokument ist an sich "well-formed" und sollte daher auch mit Pascal verarbeitet werden können.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

pascalts
Beiträge: 61
Registriert: Fr 10. Okt 2014, 13:16

Re: XML auslesen - nicht Standard gerecht?

Beitrag von pascalts »

Ich hatte es mit DOM und read_XML versucht. Dies scheint aber nicht in der Lage zu sein, diesen Teil auszulesen. Folgende Lösung geht:

Code: Alles auswählen

uses simpleinternet; //aus den internettools von http://hg.benibela.de/internettools/
ipdoc := SelectDirectoryDialogAusgabe.FileName + '\Temp\' + lbROBOTERLISTE.Items[i] + '\C\KRC\Roboter\Config\User\Common\IPPNIO.xml';
         roboterip := ((process(ipdoc , '
//IP/@d1' ).toString) + '.' + (process(ipdoc , '//IP/@d2' ).toString) + '.' + (process(ipdoc , '//IP/@d3' ).toString) + '.' + (process(ipdoc , '//IP/@d4' ).toString));
         varBookmark := varDokument.Bookmarks.Item('RoboterIP');
         varBookmark.Range.Text := roboterip;

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: XML auslesen - nicht Standard gerecht?

Beitrag von Socke »

pascalts hat geschrieben:Ich hatte es mit DOM und read_XML versucht. Dies scheint aber nicht in der Lage zu sein, diesen Teil auszulesen.

Diese Aussage wage ich zu bezweifeln. Da du aber eine Lösung gefunden hast, scheint es keinen weiteren Grund zu geben, dies weiter zu verfolgen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: XML auslesen - nicht Standard gerecht?

Beitrag von creed steiger »

die hier könntest du alternativ probieren
http://www.kluug.net/oxml.php


scheint recht fix zu sein

Antworten