XML 파서 JavaScript[마감]
-
01-07-2019 - |
문제
내가 찾는 것은 좋은 자바 스크립트 라이브러리에 대한 XML 구문 분석 데이터입니다.해야하는 것보다 쉽게 사용할 수 있는 내장 XML DOM parsers 번들로 제공됩 브라우저입니다.
나는 버릇없는 조금 작업 JSON 앞으로도 뭔가에서 유사한 라인에 대한 XML.
해결책
내가 사용하는 jQuery 니다.여기에는 좋은 예를 들어:
(편집:참고-다음의 블로그 보면 멀리 갔다.)
http://blog.reindel.com/2007/09/24/jquery-and-xml-revisited/
거기에는 또한 많은 좋은 예제 jQuery 문서:
http://www.webmonkey.com/tutorial/Easy_XML_Consumption_using_jQuery?oldid=20032
편집:때문에 블로그에 대한 내 주를 들어 멀리 가고 싶어하는 추가 또 다른 예는 기본적인 방법을 보여 줍니다 도와 네임스페이스 문제는:
다른 팁
면책 조항: 나는 저자는 경우 오픈 소스 Jsonix 라이브러리 도 적합한 작업입니다.
의 몇 년 전 나는 또한 좋은 찾고 있는 XML<->JSON 분석/직렬화 라이브러리에 대한 자바 스크립트.나는 데 필요한 프로세스 XML 문서에 따라 복잡한 XML 스키마.Java,나는 정기적으로 사용 를 포함 작업에 대한 그래서 뭔가를 찾고 있었 유사:
나는 실패했을 찾아 같은 도구습니다.
그래서 내가 쓴 Jsonix 하는 것을 포함한 아날로그에 대한 자바 스크립트.
당신이 찾을 수 있습니다 Jsonix 적합합,에 관심이 있는 경우 다음과 같은 기능:
- XML<->JSON 변환에 기초 declaraive mapping JSON 및 XML 구조
- 이 매핑 수 에서 생성된 XML 스키마 또는 서면동
- 양방향 -지원합 구문 분석뿐만 아니라 직렬화(또는 작성된/마샬링이 다른 측면에서).
- 지원 소, 특성 고 고도 네임스페이스 에 정의된 XML 문서입니다.
- 엄격하게 입력해야한다.
- 엄격하게 구성되어 있습니다.
- 지원 거의 모든의 XML 스키마가 내장된 형식 (등 특별한 형식
QName
). - 에서 작동 브라우저 뿐만 아니라 Node.js, 또한 호환 RequireJS/AMD (도
amdefine
에 Node.js) - 가 광범위한 문서.
그러나,Jsonix 될 수 있는 잔인, 하는 경우,XML 은 오히려하지 않고,간단하 XML 스키마나 관심이 없는 경우 엄격한 입력 또는 구조입니다.을 확인 요구 사항입니다.
예
도 에 JSFiddle.
할 수 있는 구매 주문 스키마 과 생성에 대한 매핑을 사용하여 다음과 같은 명령을 실행합니다:
java -jar node_modules/jsonix/lib/jsonix-schema-compiler-full.jar
-d mappings -p PO purchaseorder.xsd
당신을 얻을 것 PO.js
파일 설명하는 사이의 매핑을 XML 및 자바스크립트 구조물입니다.여기에 조각에서 이러한 매핑을 줄 당신은 느낌:
var PO = {
name: 'PO',
typeInfos: [{
localName: 'PurchaseOrderType',
propertyInfos: [{
name: 'shipTo',
typeInfo: 'PO.USAddress'
}, {
name: 'billTo',
typeInfo: 'PO.USAddress'
}, {
name: 'comment'
}, {
name: 'orderDate',
typeInfo: 'Calendar',
type: 'attribute'
}, ...]
}, {
localName: 'USAddress',
propertyInfos: [ ... ]
}, ...],
elementInfos: [{
elementName: 'purchaseOrder',
typeInfo: 'PO.PurchaseOrderType'
}, ... ]
};
이에 매핑할 수 있는 파일 구문 분석 XML:
// First we construct a Jsonix context - a factory for unmarshaller (parser)
// and marshaller (serializer)
var context = new Jsonix.Context([PO]);
// Then we create a unmarshaller
var unmarshaller = context.createUnmarshaller();
// Unmarshal an object from the XML retrieved from the URL
unmarshaller.unmarshalURL('po.xml',
// This callback function will be provided
// with the result of the unmarshalling
function (unmarshalled) {
// Alice Smith
console.log(unmarshalled.value.shipTo.name);
// Baby Monitor
console.log(unmarshalled.value.items.item[1].productName);
});
거나 직렬화 자바스크립트로 개체 XML:
// Create a marshaller
var marshaller = context.createMarshaller();
// Marshal a JavaScript Object as XML (DOM Document)
var doc = marshaller.marshalDocument({
name: {
localPart: "purchaseOrder"
},
value: {
orderDate: { year: 1999, month: 10, day: 20 },
shipTo: {
country: "US",
name: "Alice Smith",
street: "123 Maple Street",
city: "Mill Valley",
state: "CA",
zip: 90952
},
billTo: { /* ... */ },
comment: 'Hurry, my lawn is going wild!',
items: { /* ... */ }
}
});
당신은 그것을 시도할 수 있습니다 에 JSFiddle 을에서 작동하는 방법을 참조하십시오습니다.
추가 면책 조항: 이 대답은 높은 투표문의 다음과 같은 토론 에 meta. 도록주의하십시오"메타-효과". 높은 투표 같은 것을 의미하지 않는 Jsonix 좋은,적용 가능한 또는 추천에 의하여 커뮤니티입니다.하지 않는 것으로 오는 높은 표입니다.
하는 경우 XML 은 간단한 형식으로 보일 수 있습니다 jQuery 고 XML JSON 으로 플러그인 나 xmlObjectifier.
직선 파서 당신은 수도에서 보고 싶 XML <SCRIPT>.
을 시도했다 XML 에 대한 스크립트.나는 것을 인정해야,나는 사용하지 않은 그것을 개인적으로,그러나 내가 듣기/읽기 전에는 몇 가지 좋은 일들에 대해니다.
그것을 시도하고 어쩌면 당신의 경험을 공유 여기에?