2014-07-10 9 views
5

मुझे एक एक्सएमएल संरचना मिलती है जिसमें नियुक्ति के बारे में जानकारी होती है।XML को जावास्क्रिप्ट/टाइपस्क्रिप्ट में deserialize कैसे करें?

मेरे कोड:

function AppointmentCallback(appointment : any) { 
} 

मैं जावास्क्रिप्ट या टाइपप्रति (पसंदीदा) में एक वस्तु में इस परिवर्तित करना चाहते हैं। JQuery में केवल parseXML विधि है जो मुझे आवश्यकतानुसार विपरीत बनाता है।

क्या कोई पुस्तकालय है जो इसे संभव बनाता है?

अग्रिम धन्यवाद!

+0

क्या आप ब्राउज़र में या node.js या कुछ और कर रहे हैं? –

+1

uhm .. parseXML xml को जावास्क्रिप्ट ऑब्जेक्ट में परिवर्तित करता है। आप संभवतः और क्या खोज रहे हैं? –

+1

@ बेंजामिन कोवाच ब्राउज़र में। @ केविन बी jquery पेज पर [लिंक] (http://api.jquery.com/jquery.parsexml/) यह कहता है कि यह एक 'एक्सएमएल दस्तावेज़' देता है। विवरण: एक स्ट्रिंग को एक XML दस्तावेज़ में पार्स करता है। मैं इसे xml से ऑब्जेक्ट बनाना चाहता हूं। –

उत्तर

3

cxml एक्सएमएल को जेएसओएन में पार्स कर सकता है और फ़ाइल लोड करने के दौरान पार्सिंग के दौरान फायरिंग के दौरान फायर हैंडलर भी चला सकता है। आप cxsd का उपयोग कर .xsd स्कीमा फ़ाइलों को टाइपस्क्रिप्ट .d.ts परिभाषा फ़ाइलों में संकलित कर सकते हैं। पार्स किए गए आउटपुट को पूरी तरह से टाइप किया जाएगा, इसलिए एटम या 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 है एक अच्छा article एक्सएमएल क्रमबद्धता और जावास्क्रिप्ट में deserialisation, जो इस प्रकार jQuery के रूप में पुस्तकालयों का सहारा के बिना सभी विकल्पों को शामिल किया गया है पर।

आईई (प्री -11) के पुराने संस्करण - और ओपेरा मिनी के वर्तमान संस्करण - कुछ सीमाएं हैं जो आपको समस्याओं का सामना करने की आवश्यकता हो सकती हैं। विशेष रूप से DOMParser.parseFromString गुम है: Check this

यदि आप वास्तव में डोम के साथ काम करने के बजाए जावास्क्रिप्ट ऑब्जेक्ट्स में कनवर्ट करना चाहते हैं, तो शायद आप जो देखना चाहते हैं वह JXON है। Here's the way

ध्यान दें कि यदि आप किसी भी समय ऑब्जेक्ट से अपने एक्सएमएल दस्तावेज़ को फिर से बनाना चाहते हैं, तो मैं आपको डीओएम में परिवर्तित करने और सीधे डोम नोड्स के साथ काम करने की सलाह दूंगा। इस तरह, जब आप इसे पुन: व्यवस्थित करते हैं, तो नोड्स का क्रम संरक्षित किया जाएगा। यदि आप सादे पुराने जावास्क्रिप्ट ऑब्जेक्ट रूट पर जाते हैं, तो ऑर्डरिंग खो जाएगी।

+0

क्या यह जेनरेट ऑब्जेक्ट पर कोड समापन प्रदान करता है? –

1

cxsd लाइब्रेरी https://www.npmjs.com/package/cxsd देखें यह xsd को टाइपस्क्रिप्ट में पार्स करता है। इसमें कुछ विषम निर्भरताएं हैं। मैं एक npm install --global --production windows-build-tools करने के लिए यह भी सुनिश्चित करें cxsd.cmd बनाने के लिए किया था शामिल किया गया है पथ यह एक CLI cxsd file.xsd यह उत्पन्न टाइपप्रति के साथ एक .d.ts फ़ाइल आउटपुट है

0

तुम भी JSONconvert

से

serializeXmlNode उपयोग कर सकते हैं जैसा कि अनुसरण करें: Jsonconvert (डॉक्टर)

संबंधित मुद्दे