Frage

Ich versuche, eine WBXML codierte SyncML Nachricht von einem Nokia N95 zu dekodieren. Mein erster Versuch war die Python pywbxml Modul zu verwenden, die Anrufe Wraps libwbxml. Dekodieren der Nachricht mit diesem gab eine Menge -Tags und einen großen Teil der binären innerhalb eines -Tag. Ich habe versucht, selbst den Inhalt der durch läuft, aber es ist fehlgeschlagen. Gibt es etwas, was ich bin fehlt?

Auch dann, wenn jemand eine reine Python-Implementierung eines WBXML-Parser? Gelingt das nicht eine Befehlszeile oder Online-Tool, um diese Nachrichten zu entschlüsseln nützlich wäre - es wäre es viel einfacher zu machen für mich, meine eigene schreiben ...

War es hilfreich?

Lösung 2

ich am Ende eines Python-Parser selbst zu schreiben. Ich schaffte es, es zu tun, indem Sie die spec hier folgende: http://www.w3.org/TR/wbxml/

Und dann nimmt die Codetabellen aus dem horde.org cvs.

Das Open-Website Mobile Alliance und Dokumentation ist schrecklich, das war ein sehr versuchtes Projekt: (

Andere Tipps

Komischerweise habe ich an dem gleichen Problem arbeiten. Ich bin etwa auf halbem Weg durch meine eigenen rein Python WBXML Parser zu schreiben, aber es ist noch nicht vollständig genug, um nützlich zu sein, und ich habe sehr wenig Zeit auf es jetzt zu arbeiten.

Diese -Tags sein könnte, weil pywbxml / libwbxml nicht den richtigen Tag Vokabular geladen hat. WBXML repräsentiert Tags durch eine Indexzahl zu vermeiden, die gleichen Tag übertragen Namen mehrere hundert Mal, und die Tabelle, die Indexnummern der Zuordnung von Namen zu markieren, muss separat selbst aus dem WBXML Dokument geliefert werden. Von einem vagen Blick auf der libwbxml Quelle es scheint, wie libwbxml hat eine Reihe von Tag-Tabellen hart codiert. Es hat Tische für SyncML 1,0-1,2; Ich glaube, mein Nokia E71 sendet SyncML 1.3 (wenn ja, Ihr N95 wahrscheinlich tut das auch), die es wie libwbxml sieht noch nicht unterstützt.

es bekommen könnte so einfach sein zu arbeiten, wie das Hinzufügen eines SyncML 1.3 Tabelle libwbxml. Das heißt, das letzte Mal habe ich versucht, pywbxml kompilieren nicht gegen die Vanille libwbxml Quelle, so dass Sie sich einige Patches anwenden erste ... so „einfach“ ein relativer Begriff sein kann.

Ich benutzte pywbxml , Nur einen Patch in pywbxml.pyx benötigt:

params.lang in Funktion wbxml2xml um Linie 25 auf:

params.lang = WBXML_LANG_UNKNOWN

funktioniert wie Charme. Auch wechselnde Basisklasse für WBXMLParseError zu Ausnahme hilft:

class WBXMLParseError(Exception):
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top