2014-07-10 2 views
5

약속에 대한 정보가 들어있는 XML 구조를 얻습니다.XML을 JavaScript/TypeScript로 deserialize하는 방법은 무엇입니까?

내 코드 :

function AppointmentCallback(appointment : any) { 
} 

내가 자바 스크립트 또는 타이프 라이터 (선호)의 개체에서이 변환하고자합니다. jQuery에는 내가 필요한 것과 반대가되는 parseXML 메소드 만 있습니다.

이것을 가능하게하는 라이브러리가 있습니까?

미리 감사드립니다.

+0

브라우저에서 또는 node.js 또는 다른 작업을하고 있습니까? –

+1

uhm .. parseXML은 xml을 javascript 객체로 변환합니다. 그 밖의 무엇을 찾고있을 수 있겠습니까? –

+1

@Benjamin Kovach 브라우저에서. @ Kevin B jquery 페이지 (http://api.jquery.com/jquery.parsexml/)에서 [XML 문서]를 반환한다고 나와 있습니다. 설명 : 문자열을 XML 문서로 구문 분석합니다. XML에서 객체를 생성하고 싶습니다. –

답변

3

cxml은 XML을 JSON으로 구문 분석하고 파싱하는 동안 처리기를 실행하여로드되는 파일을 처리 할 수 ​​있습니다. .xsd 스키마 파일을 cxsd을 사용하여 TypeScript .d.ts 정의 파일로 컴파일 할 수 있습니다. 구문 분석 된 출력도 완전히 형식화되어 있으므로 Atom 또는 tsc 컴파일러에서 JSON (요소 및 특성 이름과 데이터 형식 등)을 올바르게 처리하는지 확인할 수 있습니다.

사용 방법은 다음과 같습니다 더 많은 예제 in Github) :

import * as cxml from 'cxml'; 
import * as example from 'cxml/test/xmlns/dir-example'; 

var parser = new cxml.Parser(); 
var result = parser.parse('<dir name="empty"></dir>', example.document); 

result.then((doc: example.document) => { 
    console.log(JSON.stringify(doc, null, 2)); 
}); 
1

MDN이있다 jQuery와 같은 라이브러리에 의존하지 않고 모든 옵션에 대해 설명 자바 스크립트에서 XML 직렬화 및 deserialisation에 좋은 article.

IE (이전 버전)의 이전 버전과 최신 버전의 Opera Mini에는 지원해야 할 문제가 발생할 수있는 몇 가지 제한 사항이 있습니다. 특히 DOMParser.parseFromString가 누락되었습니다 : Check this.

DOM으로 작업하는 것이 아니라 JavaScript 객체로 변환하고 싶다면 아마도 JXON을보고 싶을 것입니다. Here's the way.

언제든지 개체에서 XML 문서를 다시 만들고 싶다면 DOM으로 변환하고 DOM 노드로 직접 작업하는 것이 좋습니다. 그렇게하면 재 직렬화하면 노드의 순서가 보존됩니다. 평범한 JavaScript 객체 경로를 따라 간다면 주문이 손실됩니다.

+0

생성 된 객체에 코드 완성 기능을 제공합니까? –

1

cxsd 라이브러리를 확인하십시오. https://www.npmjs.com/package/cxsd xsd를 typescript로 구문 분석합니다. 이상한 의존성이 있습니다. 나는 그것이 생성 된 타이프 라이터와 .d.ts 파일을 CLI를 cxsd file.xsd를 출력 경로를 포함도 확인 cxsd.cmd을 npm install --global --production windows-build-tools 을해야했다

0

또한

JSONconvert

에서 serializeXmlNode을 사용할 수 있습니다 다음과 같이하십시오. Jsonconvert (doc)

관련 문제