XML, XML Parser



  • hi,

    Ein Parser ist ja ein Programm, das ein Dokument (das kann irgendeine Art von Datei sein) einmal "durchliest", und die enthaltenen Informationen darüberliegenden Schichten der Anwendung in irgendeiner Form zur Verfügung stellt...

    also nehmen wir mal an der inhalt der daten ist in einer textdatei, und das schema liegt in form eines XML Dokuments vor, dieser tree wird eingelesen und mit den daten der textdatei befüllt, schaut dann so aus:

    XML-Dokument:

    <buch>    
    	<titel>Galgenlieder</titel>    
    	<autor>        
    		<vorname>Christian</vorname>        
    		<name>Morgenstern</name>    
    	</autor>
    </buch>
    

    DOM-Tree:

    buch
     |
      ---- titel 
             |
              ---- Galgenlieder 
     |
      ---- autor
             |
              ---- vorname
                     |
                      ---- Christian
             |
              ---- name
                     |
                      ---- Morgenstern
    

    und dann kann man ja in ein anderes format parsen...
    ist das der übliche Weg eines Parsers? in welche formate kann man denn alles parsen? was habt ihr schon geparst?
    lg



  • ist das der übliche Weg eines Parsers? in welche formate kann man denn alles parsen?

    Ein Parser prüft, ob eine Eingabe einer gewissen Grammatik gehorcht. Daher muss er je nach Grammatik unterschiedlich implementiert werden. Für XML liegt eine andere Grammatik vor wie für C++ und eine andere, wie wenn man einfach nur eine vorzeichenbehaftete Zahl parst. Ich kann auch nicht einfach ein Integer in ein C++-Programm "parsen". Parsen ist keine Umwandlung, sondern ein erkennender Vorgang, daher verstehe ich die Frage nicht so ganz.

    was habt ihr schon geparst?

    config-files z.B.



  • tja dachte erkennen von daten aus der textdatei und einfügen in ein xml doku. wird auch als parsen aufgefasst...

    hast du so ein kleines parser beispiel vielleicht mit boost::spirit zum zeigen?



  • sebit schrieb:

    tja dachte erkennen von daten aus der textdatei und einfügen in ein xml doku. wird auch als parsen aufgefasst...

    hast du so ein kleines parser beispiel vielleicht mit boost::spirit zum zeigen?

    Naja otze hat einen Parser mit boost::spirit geschrieben, evtl schickt er dir ja die sources. Kannst ihn ja mal evtl über das Profil kontaktieren

    BR



  • Ich hab mal einen kleinen Interpreter für eine C-ähnliche Skriptsprache geschrieben (ist zwar in C#, sollte aber für das Parsen egal sein ;-))

    Der Parser ist eingebettet in den kompletten Interpreter, kannst ihn aber trotzdem mal anschauen, wenn's dir nur ums parsen geht.

    Link zum Source

    Vielleicht hilft's ja weiter 🕶


Anmelden zum Antworten