2014-11-30 3 views
1

내 페블에 대한 작은 애플리케이션을 작성 중입니다. 웹 서비스를 서버에 보내고 XML 응답을 처리하는 것이 그 의도입니다. 여기서 문제는 Pebble.JS가 텍스트 또는 JSON 응답 만 XML 응답을 지원한다는 것입니다. JSON에 대한 응답을 변환하여 정보를 쉽게 사용할 수있는 방법을 찾고 있습니다. 나는 조약돌을 위해 일하는 길을 찾을 수 없습니다 .JS는 이것을 성취합니다.pebble.js를 사용하여 XML을 JSON으로 변환

누구든지 Pebble.JS의 JSON에서 XML의 속성과 하위 요소 (속성 포함)를 얻는 방법을 알고 있습니까?

감사합니다.

+0

"Javascript는 기본적으로 XML을 지원하지 않습니다"라고 생각하는 이유는 무엇입니까? 다음은 XML 구문 분석을 시작할 때 좋은 출발점입니다. https://developer.mozilla.org/en-US/docs/Web/Guide/Parsing_and_serializing_XML – IMSoP

+0

@IMSoP Javascript 자체가 XML을 지원하지만 어떤 해결책도 찾을 수 없습니다. pebble.js, 그래서 pebble.js에 의해 지원되지 않는 것 같아요. –

+0

귀하의 게시물을 수정했습니다. Pebble.JS는 jQuery Mobile을 사용합니다. 즉, XML 또는 XML 형식의 응답 만 처리합니다 (XML 응답 기능은 작동하지만 원시 텍스트는 문자열로만 제공합니다) –

답변

1

이와 같은 노드 XML 구문 분석기 (https://github.com/Leonidas-from-XIV/node-xml2js)를 사용하여 Browserify (https://github.com/substack/node-browserify)와 호환되는 "브라우저"로 만들 수 있습니다.

Browserify 사용 : browserify 원시 app.js 컴파일 - app.js -o 난 당신이 nodejs도 설치되어 있어야하지만, 이것은 큰 문제 밤은 생각

. 즉석에서 작성

다음

일부 코드 :

var xml2js = require('xml2js'); 

    var xml = "<root>This is a root object!<child>This a child</child></root>" 

    xml2js.parseString(xml, function (error, result) { 
     console.log(result); // JSObject 
    }); 
+0

이것은 작동하지만 파일 크기면에서 프로젝트에 많이 추가됩니다. 그렇지 않으면 응용 프로그램에 사용될 수 있습니다. 페블 앱은 크기가 100kB로 제한됩니다. –

0

문제는 jQuery를 모바일 응답은 XML로 들어오는 지원하지 않는다는 것입니다. 이전에이 문제에 상당히 귀찮아했습니다. 내가 주변에있어 방법은 다음과 같은 방법으로 예상되는 응답 태그 내 자신의 JSON 개체를 만들어이었다

그냥 내가이 작업을 한 내 실제 프로젝트에서 일부
var IDs = message.match(/<id>(.*?)<\/id>/g); 
var tempID = IDs[0].replace('<id>','').replace('</id>',''); 

. 귀하의 필요에 따라 약간의 수정이 필요할 것입니다. JSON 객체를 만들 때 .match() 호출에서 다른 배열을 사용하여 두 번째 줄을 루프 안에 넣고 싶을 것입니다. 마지막으로 JSON.parse(...); 함수 호출을 사용하여 JSON 주소 지정 가능 객체를 변수에 할당해야합니다.