![]() |
XML Parser - Wer die Wahl hat ... hat die Qual ...
Moin !
Nunja, ich bin mir bewusst das es hier schon öfter mal Anfragen gegeben hat welchen Parser man denn nehmen könnte, aber daraus konnte ich für uns noch keine Lösung "ableiten". Auf der Suche nach einem Parser bin ich über 4 Kandidaten gestolpert: 1) Microsoft MSXML 2) DIXml - ![]() 3) NativeXml- ![]() 4) OpenXML - ![]() Nach welchen Kritierien müsste man bei der Auswahl denn vorgehen? Oder warauf sollte man achten. Ich denke dabei vor allem an die weitere Verfügbarkeit / Weiterentwicklung eines Parsers. Da würde sich aus meiner Sicht MSXML anbieten, oder? Auf der anderen Seite wird der MSXML nicht allzuoft empfohlen. Wie als den Parser für uns finden? In Anlehnung an die hier beschriebene Struktur: ![]() |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Hast du dich denn nun schon geeinigt ob du einen DOM oder SAX Parser haben willst?
|
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
|
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Wenn es nur um eine Liste der Delphi XML Parser geht, die habe ich auch verlinkt:
![]() |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Moin !
Zitat:
Mir gehts hier auch nicht um eine Parser Liste ... Interessanter wäre eben nach welchen Kriterien man aussortieren sollte. Ich denke wir werden auf jeden Fall auch XPath verwenden. Also wären die Kriterien bis hierher: - DOM & SAX Support - XPath Support - DTD Unterstützung - validierender Parser |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
MSXML
Nachteil: Muß installiert werden (ist jedoch oft installiert) und ergibt sich damit die Gefahr der DLL-Hölle Vorteil: Mit sicherheit einer der mächtigesten Parser der alle möglichen Features um XML herum bietet OpenXML Vorteil: Full Native Pascal. Keine DLL's nötig, Keine DLL-Hölle, 100% an Standard angelehnt Nachteil: Bietet nicht alles Features eines vollständigen Parsers. Entwickung primär von einem Entwickler getrieben Ich würde versuchen den XML möglichst gut zu kapseln so das ein Wechsel des Parsers sich nicht in jeder Unit niederschlägt. |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Moin Bernhard,
Zitat:
Allerdings müsste ich schon auf MSXML 4.0 gehen. Denn 6.0 geht (laut MS) nicht mehr unter 98. Und wir ham noch 98 User ... OpenXML.. Zitat:
Generell denke ich findet man zum Thema MS XML Parser mehr Informationen. Aber beim MS Parser habe ich schon mehrfach von Unzulänglichkeiten gelesen (welche auch immer das sind). Aber ich vermute mal das Rennen entscheidet sich zwischen diesen beiden ... |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Zitat:
Zitat:
Zitat:
|
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Zitat:
![]() mfG mirage228 |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Zitat:
|
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Moin,
die Borland-Interfaces sind einfach nur anders zugeschnitten - XPath ist vorhanden, nur nicht an der von MSXML her gewohnten Stelle. Was die Versionen betrifft, so sind im Auslieferungszustand naturgemäß keine neueren DOM-Versionen unterstützt. Die Nachrüstung sollte aber bei vorhandenem Quelltext machbar sein. Freundliche Grüße |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Zitat:
Muss sagen, es ist schon lange her, daß ich mich zu XML-Parsern informiert habe. Der entscheidene Vorteil für mich war, daß ich die ausgelesenen Daten direkt während dem Parsen in meine interne Datenstruktur gelesen habe. Andere Parser haben erst mal die kompletten Daten eingelesen und dann konnte ich die Daten erst in meine Datenstruktur kopieren. Dies bedeutete, daß die Daten 2 mal im Hauptspeicher waren. Das war für mich ein grosses Kriterium, weil ich teilweise sehr grosse XML-Datenmengen einlesen muss. Dafür gehen andere Sachen nicht. Gerd |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Moin !
Also es stehen nur noch OpenXML und NativeXML zur Auswahl. openXML hat den Vorteil das es hier scheinbar weit(er) verbreitet ist und auch Stylesheets / DTD und XPath unterstützt. Nachteil ist wohl die Doku ... NativeXML ist ein recht schmaler Parser ohne Stylesheets / DTD und XPath. Dafür mit eigenem Forum. |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Moin !
Was ist denn nun eigentlich TXMLDocument? Ist das eine Delphi Klasse die auf den M$ Parser aufsetzt? Oder ist das ein komplett eigener Parser von Delphi? |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
TXMLDocument ist eine Wrapperklasse die u.a entweder den MS Parser oder OpenXML verwendet
|
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Sorry für das Aufwärmen des Themas. Ich entwickle hier gerade ein Programm, das unter Win9x und wichtiger, unter WINE funktionieren soll, was es aber nicht tut. Ich habe das Programm im Kompatiblitätsmodus für Win98 debuggt und festgestellt, dass es am XML-Parser liegt, der wohl unter Win98 nicht vorhanden ist. Daher dachte ich daran, als DOMVendor OpenXML auszuwählen.
Delphi-Quellcode:
Allerdings sagt mir dann eine Fehlermeldung, dass "kein entsprechender DOM-Hersteller: OpenXML" gefunden werden könne. Muss ich irgendwelche Units dafür einbinden? Wenn ja, welche?
txmldocument(xml).DOMVendor := GetDOMVendor('OpenXML');
{ Der Typecast erfolgt hier, weil xml ein IXMLDocument, aber kein TXMLDocument ist. IXMLDocument besitzt die Eigenschaft aber nicht. Ich hoffe, dass das so funktioniert, bin nämlich im Umgang mit Interfaces nicht sehr erfahren } Danke im Voraus! |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Das Problem sollte sich lösen wenn du den MSXML-Parser installierst. Am einfachsten mit der letzten noch für Win98 verfügbaren IE-Version. Ansonsten mußt du bei MS nach einem passenten MSXML-Download suchen.
|
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Das Programm ist aber nicht nur für mich, und kann von mir selber sagen, dass ich es hasse, wenn ich für ein kleines Programm eine riesige Bibliothek herunterladen muss. Und wie sich die Installation unter Wine verhält weiß ich auch nicht.
Mein Programm braucht XML auch nur zum Speichern und Laden einer Ressource und später vielleicht mal der Einstellungen. Großartige XML-features wie XPath etc. benötige ich also gar nicht. Von daher wäre mir ein nativer Parser der ohne DLLs auskommt sowieso lieber. |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Da wurden hier im Thread genug genannt. In meiner Signatur sind am Ende des XMLLib Links auch genug andere gelistet. Und wenn es nur ein paar kleine Dateien und Einstellungen geht, genau dafür hatte ich meine XMLLib mal erstellt.
|
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Hmm, da müsst ich allerdings einige Stellen neu schreiben... und genau das wollte ich eigentlich vermeiden, indem ich einfach den Parser im TXMLDocument auswechsle. Andererseits ist es auch keine Riesenklasse. Ich schau es mir nachher/morgen mal an. :)
Edit: Ich habe mich jetzt für deine XMLLib entschieden. Die paar zeilen waren dann auch schneller umgeschrieben als ich dachte. Der Code ist obendrein auch noch geschrumpft, und ich meine acuh, dass der Programmstart sich beschleunigt hat. Vielen Dank! :thumb: |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Vielen Dank für das Lob.
|
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Moin !
Auch wenn ich es glaube ich schon per Mail geschickt habe. Ich bedanke mich auch nochmal bei Thomas für die LIB (die wir jetzt einsetzen). Die ist einfach nur Klasse und es macht Spass damit zu arbeiten. Many thx ! :thumb: |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Ja, auch nochmal vielen Dank.
Wir setzen sie hier in der Firma auch nur ein und von daher hat sich eine neue Anforderung ergeben: es muss ein recht grosse Datei geöffnet werden und ein bestimmter Knotenpfad bzw. Struktur muss ausgelesen werden. Da die LIB zur Zeit noch als DOM Parser angelegt ist, werde ich eine Zwischenlösung demnächst implementieren, damit man große Dateien öffnen, aber dabei direkt einen Knotenpfad mitgeben kann, so dass die Lib alles überspringt und ab dem gefundenen Knoten die Struktur ab diesem parst bis dieser wieder geschlossen wird. Damit sollte sich die Verarbeitung von großen Dateien ohne eine Umstellung von DOM zu SAX verarbeiten lassen und grundlegend ändert sich vom Interface nichts. Auch werde ich dazu das MMF nochmal besser umstellen, da er bisher immer das gesamte File mappt und nicht den Teil den er liest/schreibt. Nur mal so als Info zur nahen Zukunft. Also es geht voran... |
Re: XML Parser - Wer die Wahl hat ... hat die Qual ...
Thumbs up :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 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