Quellensuche zum Thema 'XML Parser'

  • Thema 'XML Parser und AutoIt' :


    Ich werde mich in Kürze mit einem größeren XML-Projekt beschäftigen (müssen). Daher habe ich mal gesucht, was es bereits so gibt und wie aktuell die Sachen sind. Diese Zusammenstellung ist natürlich nicht vollständig. Möglicherweise spart sie anderen Usern aber etwas Recherchezeit;)


    1. XML DOM Wrapper (COM) von eltorro :

    https://www.autoitscript.com/f…9848-xml-dom-wrapper-com/

    Datei : _XMLDomWrapper.au3


    Vorab : Der Thread geht über 39 Seiten=O !

    Es war daher nicht ganz einfach, die aktuelle Version zu finden. Zudem entwickelt eltorro das Projekt offenbar nicht weiter. Lt. Startbeitrag ist die letzte von ihm gepostete Version die 1.0.3.87

    vom 07.März 2008. Die Downloadlinks gehen mittlerweile alle in's Nirvana.

    Letztmalig im Thread geäußert hat sich eltorro am 14.Mai 2009 !!


    Auf Nachfragen hat der renommierte User mLipok diese (letzte) Version 1.0.3.87 am 27.Juni 2014 erneut gepostet :

    https://www.autoitscript.com/f…ndComment&comment=1180192


    Hier zur Sicherheit der MD5-Hash : 971e665f3b4e524f0f5e7a05b0b0a704

    Da eltorro (lt. mLipok) auch nicht auf Rückfragen reagiert, hat er sich 'der Sache angenommen' -> siehe 1.1.


    1.1. _XMLDomWrapper.au3 - Version 1.0.3.87 von mLipok :

    Gepostet von mLipok - 27.Juni 2014 :

    https://www.autoitscript.com/f…ndComment&comment=1180202


    MD5-Hash : ddcf09b1070502ccafa6d1aad05e85e0

    Ich habe die Quelltexte der beiden Versionen 1.0.3.87 (eltorro vs. mLipok) verglichen !

    Bis auf tidy-Maßnahmen wie saubere Einrückungen und einige #forceref-Anweisungen sind sie identisch. Ich würde trotzdem die Version 1.0.3.87 von mLipok vorziehen.


    Anmerkung :

    Gepostet von mLipok - 17.Mai 2015 :

    https://www.autoitscript.com/f…ndComment&comment=1245937


    Kurzer Hinweis, dass er eine etwas 'neuere' Version der _XMLDomWrapper.au3 von eltorro gefunden hat (Version 1.0.3.97)

    Weitere Angaben/Änderungen zu dieser Version macht er aber nicht, sondern gibt nur den Downloadlink an :

    https://raw.githubusercontent.…clude/_XMLDomWrapper_.au3


    Ich habe mir auch die Version 1.0.3.97 von eltorro mal angesehen :

    Einige Funktionen wurden tatsächlich erweitert. Allerdings ist diese Version nicht datiert, und wird auch nicht im Thread aufgeführt.


    2. XML.au3 von mLipok :

    https://www.autoitscript.com/f…mlau3-beta-support-topic/

    Datei : XML.au3 (älterer Arbeitstitel "XMLWrapperEx.au3")


    Die aktuelle Version ist enthalten in der XML_1.1.1.13.zip vom 5.März 2017.

    Download :

    https://www.autoitscript.com/f…formerly-xmlwrapperexau3/


    Liest man sich den Thread komplett durch, so scheint es wohl noch Probleme zu geben. Zumindest ist mLipok im Forum und Thread aber noch aktiv.


    3. XML.zip von AspirinJunkie :XML-UDF nativ in AutoIt (+CSS-Selector-Feature) :

    XML-UDF nativ in AutoIt (+CSS-Selector-Feature)

    Datei : XML.zip (enthält u.A. eine XML.au3)

    Hinweis : Diese hat nichts mit der XML.au3 von mLipok zu tun !

    Der letzte Beitrag von AspirinJunkie ist vom 13.September 2017.


    4. Direkte Nutzung des COM-Objektes :

    Neben den UDF's wird häufig auch die direkte Nutzung des COM-Objektes empfohlen, siehe z.B. :

    https://www.autoitscript.com/f…indComment&comment=925373

    und

    https://www.autoitscript.com/f…indComment&comment=925398


    Stichworte :

    - $oXML = ObjCreate("Msxml2.DOMDocument")

    - XPath

    - https://de.wikipedia.org/wiki/MSXML (Microsoft XML Core Services - MSXML)


    Abschließend ein Zitat von Linus Torvalds für alle, die von XML genervt sind :P :

    "XML is crap. Really. There are no excuses. XML is nasty to parse for humans, and it’s a disaster to parse even for computers. There’s just no reason for that horrible crap to exist."

    – Linus Torvalds, 2014


    frei übersetzt in etwa :

    "XML ist Dreck. Wirklich. Es gibt keine Ausreden. Die Analyse von XML ist für den Menschen sehr unangenehm, und selbst für Computer eine Katastrophe. Es gibt keinen Grund, dass dieser fürchterliche Mist existiert."


    Na dann ...

    Gruß Musashi

    "Die Definition von Wahnsinn ist, immer wieder das Gleiche zu tun und andere Ergebnisse zu erwarten." - Albert Einstein

  • Und ich sitze hier an meinem aktuellen Projekt und friemel mir einen eigenen XML-Parser zusammen damit ich keine UDF nutzen muss :D

    Auf jeden Fall eine hübsche Sammlung, man hat viele Alternativen wenn man XML in AutoIt nutzen möchte.


    Das Problem bei der Variante mit dem Objekt ist, dass man keine Fehlerbehandlung vorimplementiert hat.

    Sofern man sich scheut in fremde UDFs "einzuarbeiten" und ihre Rückgabewerte zu verstehen, kann das schon einen großen Unterschied machen.


    Da muss ein COM-Errorhandler drauf, dann muss dieser noch den Fehler korrekt zurückgeben (bzw. für AutoIt angepasst werden, wenn man nicht einfach die Codes übernimmt, bzw. die Codes überhaupt erstmal verstehen)

    und dieser muss dann noch zusätzlich im Code (wenn das Parsing fehlschlägt o. ä.) berücksichtigt werden - also praktisch das Rad neu erfinden.

  • Auf jeden Fall eine hübsche Sammlung, man hat viele Alternativen wenn man XML in AutoIt nutzen möchte.

    Danke :)

    Ich bin eh gerade dabei mir ein 'Bild von der Lage' zu machen, da kann man die Erkenntnisse auch teilen.

    Ansonsten bin ich, was die weitere Vorgehensweise angeht, noch unschlüssig. Mit einfachen XML-Strukturen habe ich in AutoIt schon gearbeitet, aber dieses Mal wird es wohl komplexer.


    Wie Du bereits angemerkt hast, kann der Zeitaufwand beim selbstparsen explosionsartig ansteigen !

    Andererseits sind möglicherweise veraltete bzw. fehlerhafte UDF's auch nicht die Lösung.

    Mal sehen, wo die Reise hingeht ;)


    Gruß Musashi

    "Die Definition von Wahnsinn ist, immer wieder das Gleiche zu tun und andere Ergebnisse zu erwarten." - Albert Einstein

  • Ich persönlich nutze mal das Microsoft.XMLDOM-Objekt mal meine UDF.
    Meine eigene UDF war eher eine Übung für mich was Parsing angeht und zu schauen wie performant man dies nativ in AutoIt hinbekommen kann.


    Unabhängig ob meine UDF oder das COM-Objekt: Die XML muss sauber sein sonst wird es Grütze.
    Dann aber ist ein XML-Parser nicht die allerhärteste Aufgabe.
    Aber wer dann denkt man lässt darauf einfach mal eine HTML-Datei drauf los, der wird eine böse Überraschung erleben.

    Macht mal so einen Parser und ihr werdet zum größten Verfechter für die Verdrängung von HTML zugunsten von XHTML

    ^^

    Der letzte Beitrag von AspirinJunkie ist vom 13.September 2017.

    Ich kann auch gern aktuellen Spam drunter schreiben wenn dies erwünscht ist ;)

  • Die XML muss sauber sein sonst wird es Grütze.

    Stimmt ! Sehr zu unser aller Leidwesen hat man darauf aber häufig keinen Einfluss.

    Was manche Hersteller (Shopsysteme, WaWi's usw.) da so 'raushauen, ist mitunter grausam <X


    Ich kann auch gern aktuellen Spam drunter schreiben wenn dies erwünscht ist ;)

    Nein, natürlich nicht :P.

    Die Hinweise auf die letzte Threadaktivität dienten ausschließlich der Information, nicht als Qualitätsurteil.


    Auch eine UDF von 2008 kann einen hohen Gebrauchswert haben, sofern man z.B. Script Breaking Changes berücksichtigt. Interessierte finden näheres dazu unter :

    https://www.autoitscript.com/a…ript_breaking_changes.htm


    Gruß Musashi

    "Die Definition von Wahnsinn ist, immer wieder das Gleiche zu tun und andere Ergebnisse zu erwarten." - Albert Einstein