2010-11-28 5 views
1

Ich möchte eine Textdatei analysieren, zum Beispiel so etwas wie dieses:Ein Parser mit LEPL

div:: 
    class:yo-d 
    text:example 
    id:my-class 
    h1:: Title 
     href:http://www.example.com 
    div:: 
     class:class1 
     id:my-class2 

Es ist ähnlich wie reStructuredText.
Jedes Tag endet mit :: und kann einige Attribute haben attr:value. Ich möchte so etwas wie dieses erhalten, ein Python-Wörterbuch:

{'div': {'attrs': {'text': 'example', 'class': 'yo-d', 'id': 'my-class'}, 
     'sub': {'h1': {'content': 'Title', 'attrs': {'href': 'http://www.example.com'}}, 
       'div': {'attrs': {'class': 'class1', 'id': 'my-class2'}}, 
       }, 
     } 
} 

Nach Unter dort die eingekerbten Tags sind, und wenn etwas ein :: des Tags folgt geht es in 'content'.

Ich würde Lepl verwenden, aber ich weiß nicht einmal, wo ich anfangen soll, irgendwelche Vorschläge?

Danke,
Rubik

+1

Ich würde mit einigen grundlegenden Tutorials beginnen: http://www.acooke.org/lepl/intro-1.html –

+0

Vielen Dank! Ich habe gerade angefangen zu lesen. – rubik

+0

Das sieht JSON sehr ähnlich. Lepl enthält einen JSON-Parser, der von einem Benutzer übergeben wurde. Weitere Informationen finden Sie unter https://groups.google.com/group/lepl/browse_thread/thread/bb9e082dacca8c8b und http://www.acooke.org/lepl/api/lepl.contrib.json-pysrc.html#Simple –

Antwort

2

Eine alternative LEPL zu verwenden ist Pyparsing: http://pyparsing.wikispaces.com/

Ich bin derzeit mit Pyparsing erfolgreich, und wenn Sie die Ergebnisse nennen können Sie Wörterbücher benannter Ergebnisse raus.