我正在尝试解码来自诺基亚N95的WBXML编码的SyncML信息。
我的第一个尝试是使用python pywbxml模块,该模块包装对libwbxml的调用。用这种方法解码消息时,会在标记中产生大量的标记和大量二进制文件。我试图自己运行的内容,但失败了。我有什么遗漏吗?
另外,有人知道wbxml解析器的纯python实现吗?如果没有一个命令行或在线工具来解码这些消息会很有用——这会让我更容易编写自己的。。。

最佳答案

有趣的是,我一直在研究同样的问题。我已经编写了自己的纯Python WBXML解析器将近一半了,但是它还不够完整,不足以发挥作用,而且我现在几乎没有时间来处理它。
这些标记可能是因为pywbxml/libwbxml没有加载正确的标记词汇表。WBXML通过一个索引号来表示标记,以避免将相同的标记名传输数百次,而将索引号映射到标记名的表必须与WBXML文档本身分开提供。从对the libwbxml source的模糊一瞥来看,libwbxml似乎有一堆硬编码的标记表。它有SyncML 1.0-1.2的表;我想我的诺基亚E71会发送syncml1.3(如果是的话,你的N95可能也会发送),看起来libwbxml还不支持。
让它工作起来可能和将SyncML 1.3表添加到libwbxml一样简单。也就是说,上一次我尝试时,pywbxml并没有针对普通的libwbxml源进行编译,所以您必须首先应用一些补丁。。。所以“简单”可能是一个相对的词。

关于python - 从S60设备解码WBXML SyncML消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/226279/

10-12 00:22