Domanda

Sto cercando di decodificare un messaggio SyncML codificato WBXML da un Nokia N95. Il mio primo tentativo è stato di utilizzare il modulo pywbxml di Python che avvolge le chiamate a libwbxml. La decodifica del messaggio con questo ha dato molto & Lt; unknown & Gt; tag e un grosso pezzo di binario all'interno di una < Collection > etichetta. Ho provato a eseguire il contenuto di & Lt; Collection & Gt; da solo, ma ha fallito. C'è qualcosa che mi manca?

Inoltre, qualcuno conosce un'implementazione Python pura di un parser wbxml? Non riuscire a decodificare una riga di comando o uno strumento online sarebbe utile: mi renderebbe molto più semplice scrivere il mio ...

È stato utile?

Soluzione 2

Ho finito per scrivere un parser Python da solo. Sono riuscito a farlo seguendo le specifiche qui: http://www.w3.org/TR/wbxml/

E poi prendendo le tabelle dei codici dal cvs di horde.org.

Il sito e la documentazione dell'alleanza mobile aperta sono terribili, questo è stato un progetto molto impegnativo :(

Altri suggerimenti

Stranamente ho lavorato sullo stesso problema. Sto scrivendo il mio parser WBXML puro Python, ma non è ancora abbastanza completo per essere utile e ho poco tempo per lavorarci su adesso.

Quelli < Unknown > i tag potrebbero essere perché pywbxml / libwbxml non ha caricato il vocabolario dei tag giusto. WBXML rappresenta i tag con un numero di indice per evitare di trasmettere lo stesso nome di tag centinaia di volte e la tabella che mappa i numeri di indice sui nomi di tag deve essere fornita separatamente dal documento WBXML stesso. Da una vaga occhiata a la fonte libwbxml sembra libwbxml ha un sacco di tabelle di tag hard coded. Ha tabelle per SyncML 1.0-1.2; Penso che il mio Nokia E71 mandi SyncML 1.3 (se è così, probabilmente anche il tuo N95), che sembra che libwbxml non supporti ancora.

Far funzionare potrebbe essere semplice come aggiungere una tabella SyncML 1.3 a libwbxml. Detto questo, l'ultima volta che ho provato, pywbxml non si compila con il sorgente libwbxml alla vaniglia, quindi prima devi applicare alcune patch ... quindi & Quot; simple & Quot; può essere un termine relativo.

Ho usato pywbxml , Ho solo bisogno di una patch in pywbxml.pyx:

params.lang in funzione wbxml2xml around

scroll top