문제

Nokia N95에서 WBXML 인코딩 된 SYNCML 메시지를 디코딩하려고합니다. 첫 번째 시도는 libwbxml에 호출을 감싸는 Python pywbxml 모듈을 사용하는 것이 었습니다. 이것으로 메시지를 디코딩하면 많은 것을 얻었습니다u003Cunknown> 태그와 큰 이진 덩어리u003CCollection> 꼬리표. 나는 내용을 실행하려고 시도했다u003CCollection> 그 자체로는 그 자체로 이루어졌지만 실패했습니다. 내가 놓친 것이 있습니까?

또한 WBXML 파서의 순수한 파이썬 구현을 아는 사람이 있습니까? 이러한 메시지를 해독하는 명령 줄이나 온라인 도구가 유용하지 않을 것입니다. 이는 내 자신의 글을 훨씬 쉽게 쓸 수 있습니다 ...

도움이 되었습니까?

해결책 2

나는 파이썬 파서를 직접 작성하게되었습니다. 나는 여기에서 사양을 따르면서 그것을했다.http://www.w3.org/tr/wbxml/

그런 다음 horde.org CVS에서 코드 테이블을 가져옵니다.

Open Mobile Alliance의 사이트와 문서는 끔찍합니다. 이것은 매우 노력하는 프로젝트였습니다 :(

다른 팁

재미있게 나는 같은 문제를 해결하고 있습니다. 나는 내 자신의 순수한 파이썬 WBXML 파서를 쓰는 것을 절반 정도 떨어져 있지만, 아직 유용하기에 충분히 완료되지 않았으며 지금 당장 작업 할 시간이 거의 없습니다.

저것들u003CUnknown> PYWBXML / LIBWBXML에는 올바른 태그 어휘가 장착되어 있지 않기 때문일 수 있습니다. WBXML은 동일한 태그 이름을 수백 번 전송하지 않기 위해 인덱스 번호로 태그를 나타내고, 인덱스 번호를 맵핑하는 테이블은 WBXML 문서 자체와 별도로 제공되어야합니다. 모호한 눈에서 libwbxml 소스 libwbxml에는 수많은 태그 테이블이 하드 코딩 된 것 같습니다. SYNCML 1.0-1.2 용 테이블이 있습니다. 내 Nokia E71이 syncml 1.3을 보내면 Libwbxml이 아직 지원하지 않는 것처럼 보입니다.

작동하는 것은 libwbxml에 syncml 1.3 테이블을 추가하는 것만 큼 간단 할 수 있습니다. 즉, 내가 시도했을 때, Pywbxml은 바닐라 libwbxml 소스에 대해 컴파일하지 않으므로 먼저 패치를 적용해야합니다 ... 따라서 "간단한"은 상대적인 용어 일 수 있습니다.

나는 사용했다 pywbxml , pywbxml.pyx에서 하나의 패치가 필요했습니다 :

params.lang 기능에서 wbxml2xml 주위에 라인 25 로 설정:

params.lang = WBXML_LANG_UNKNOWN

매력처럼 작동합니다. 또한 WBXMLPARSEERROR의 기본 클래스를 예외로 변경합니다.

class WBXMLParseError(Exception):
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top