2009-12-16 8 views
21

Also, als ein lustiges Projekt, entschied ich, dass ich meinen eigenen XML-Parser schreiben würde. Nein, ein bestimmtes Dokument nicht analysieren und nein, keine XML-Parser-Bibliothek verwenden. Ich meine Code schreiben, um jedes XML-Dokument in eine verwendbare Datenstruktur zu analysieren. Nur weil ich die Herausforderung mag. :-)Rollen Sie Ihren eigenen XML-Parser/XML-Parsing-Algorithmus?

Mit dem gesagt, bis jetzt hat es sich als ... interessant erwiesen. Es ist nicht so einfach zu analysieren (besonders, wenn Sie anfangen, Sonderzeichen, CDATA, leere Tags, Kommentare usw. zu berücksichtigen), wie es ursprünglich aussah.

Gibt es irgendwelche gut dokumentierten XML-Parsing-Algorithmen oder Erklärungen, die jemand kennt? Es scheint, als ob es gut dokumentierte Queue und Stack und BTree und etc. etc. etc. Implementierungen überall gibt, aber ich bin mir nicht sicher, dass ich jemals einen einfachen, gut dokumentierten XML-Parseralgorithmus gesehen habe ...

Ich wiederhole: Ich bin nicht auf der Suche nach einer vorgefertigten Parser-Bibliothek! Ich bin auf der Suche nach Informationen über , wie ich meine eigene vorgefertigte Parser-Bibliothek erstellen! Sag mir nicht "Expat benutzen" oder "SAX benutzen" oder was auch immer. Das ist nicht das, wonach ich frage.

Antwort

17

Antlr bietet eine tutorial beim Parsen von XML. Es gliedert den Prozess in Phasen: Lexing, Parsing, Tree Parsing usw. Sieht ziemlich interessant aus.

+0

+1 für einen Parser Generator vorschlagen – kdgregory

-9

http://expat.sourceforge.net/

Expat ist eine XML-Parser-Bibliothek in C geschrieben Es ist ein stromorientierte Parser ist, in dem eine Anwendung Handler für Dinge registriert der Parser im XML-Dokument finden könnte (wie Tags beginnen). Ein einführender Artikel zur Verwendung von Expat ist auf xml.com verfügbar.

+5

Bitte lesen Sie die Frage. Genau das will ich nicht. Ich möchte * etwas schreiben wie Expat *, nicht nur * Expat benutzen *. –

1

Ich weiß nicht, ob es in Ihrem Buch "betrügen" würde, aber Sie könnten versuchen, Ihre XML mit einem vorgefertigten Allzweck-Sprachparser wie ANTLR zu analysieren. Das Ergebnis wäre eine Liste von Token (wenn Sie nur den Lexer verwenden) oder eine Parse-Struktur (wenn Sie den Parser einschließen) und Sie könnten den Parse-Baum dann fast 1: 1 in eine XML-Struktur neu aufbauen.

Vielleicht. Ich habe nicht darüber nachgedacht, wie sich XML von "normalen" ANTLR-ähnlichen Programmiersprachen unterscheidet und ob Sie in der Lage sind, eine geeignete Grammatik zu definieren.

-6

VTD-XML ist wahrscheinlich die einfachste Parsing-Technik, die möglich ist ...

+1

Lesen Sie die Frage, ich bin nicht auf der Suche nach einer vorgefertigten Bibliothek, ich bin auf der Suche nach Algorithmen oder Tutorials zum Erstellen einer eigenen Bibliothek *. –

+0

Ich denke, ich verweise auf den virtuellen Token-Deskriptor, was vdd-xml implementiert wieder –

+0

Spam? Lernst du nicht? –

Verwandte Themen