AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fehler beim XML Parsen

Ein Thema von Broucker · begonnen am 25. Sep 2018 · letzter Beitrag vom 25. Sep 2018
Antwort Antwort
Broucker

Registriert seit: 11. Nov 2004
Ort: Klagenfurt/Berlin
8 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Fehler beim XML Parsen

  Alt 25. Sep 2018, 19:05
Hallo,
vorweg - ich habe bereits einiges mit XML Dateien und auch mit dem Datenbindungsexperten gemacht.
War aufgrund einfacher Strukturen soweit gut machbar - nun bekomme ich (über ein Webservice)
xml Dateien mit Rechtsinhalten die vereinfacht so aussehen:

<liste>
<ziffernliste ebene="1">
<listelem ct="text">
<symbol stellen="2">6.</symbol>„Industriebatterien“ Batterien oder Akkumulatoren, die für industrielle oder gewerbliche Zwecke...
</listelem>
<listelem ct="text">
<symbol stellen="2">7.</symbol>„Altbatterien“ Batterien oder Akkumulatoren, die gemäß §*2 AWG*2002 als Abfall gelten;
</listelem>
</ziffernliste>
<literaliste ebene="2">
<listelem ct="text">
<symbol stellen="2">a)</symbol>die gekapselt sind und
</listelem>
...
</literaliste>
...
<schluss typ="Ziff" ct="text">bei denen Gerätealtbatterien abgegeben werden können;</schluss>
</liste>

Ich kann gut auf die Attribute (zB. ct="text") zugreifen (auslesen reicht)
ebenso auf den Text in <schluss> ("bei denen Gerätealtbatterien....."), auch die NodeNames etc...

Aber egal ob ich das über die Funkionen der XML-Datenbindung oder direkt (.node[0].Listelem[1].Text)
mache es geht nicht (EXMLDocError -'Element "listelem" enthält keinen einzelnen Textknoten')

Beisiel XML https://www.ris.bka.gv.at/Dokumente/...OR40193256.xml


Ich behirne das jetzt leider nicht mehr ;(

Vielleicht kann mir da jemand von Euch auf die Sprünge helfen
Vielen Vielen Dank!
Christian Horst
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
2.823 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Fehler beim XML Parsen

  Alt 25. Sep 2018, 19:20
Die Fehlermeldung "EXMLDocError -'Element "listelem" enthält keinen einzelnen Textknoten'" ist korrekt:

Code:
<listelem ct="text">
  <symbol stellen="2">7.</symbol>&#8222;Altbatterien&#8220; Batterien oder Akkumulatoren, die gemäß §*2 AWG*2002 als Abfall gelten;
</listelem>
listelem hat zwei Childnodes: einen <symbol> Node und einen Textnode. Ich nehme an, mann muss in diesem Fall die Childnodes der Reihe nach abarbeiten und jeweils den Node-Typen darauf prüfen, ob es ein Textnode ist. In diesem Fall würde Childnodes[1] daher den gesuchten Text enthalten.

p.s. allerdings habe ich in der im Link aufrufbaren Beispiel-XML-Datei auch "kompliziertere" Fälle gesehen, bei denen Childnodes[1] nicht zum Ziel führt:

Code:
<listelem ct="text">
  <symbol stellen="2"><b>2.</b></symbol>
  <b>Persönliche und soziale Kompetenz</b>
</listelem>
Hier ist der Text mit <b> formatiert, Childnodes[1] ist daher das b Element, kein Textnode. Der Textnode ist hier der erste Childnode des b Elements.
Michael Justin

Geändert von mjustin (25. Sep 2018 um 19:25 Uhr)
  Mit Zitat antworten Zitat
Broucker

Registriert seit: 11. Nov 2004
Ort: Klagenfurt/Berlin
8 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Fehler beim XML Parsen

  Alt 25. Sep 2018, 19:37
VIELEN Dank!!
Code:
Ziffernliste[0].Listelem[0].ChildValues[1]
brachte das Ergebnis



... ich werde morgen das "grosse" XML angehen und hoffe das ich das nun endlich ganz verstanden hab

Danke!
Christian Horst

Geändert von Broucker (25. Sep 2018 um 19:38 Uhr) Grund: zusätzliche Info
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.731 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Fehler beim XML Parsen

  Alt 25. Sep 2018, 21:06
So manche XML-Komponente bietet auch sowas wie InnerText als Property der Nodes, welches den XML-Inhalt dieses Notes enthält.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf