2012-05-08 27 views
5

मैं एक XML स्ट्रिंग को टेक्स्ट स्ट्रिंग को पार्स करने के लिए एक DOMParser ऑब्जेक्ट का उपयोग कर रहा हूं। हालांकि यह एक वेब वर्कर के संदर्भ में उपलब्ध नहीं है (और न ही, दस्तावेज.ELEMENT_NODE या कई अन्य स्थिरांक जिन्हें आवश्यक होगा)। क्या ऐसा करने का कोई और तरीका है?वेब वर्कर में XML को पार्स करना

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

<car color="blue"><driver/></car> 

... और वापस एक उपयुक्त वृक्ष संरचना और यह पार करने के लिए एक तरह से मिलता है: मैं बस निम्नलिखित की तरह एक पाठ स्ट्रिंग प्रदान करना चाहते हैं। मुझे स्कीमा सत्यापन या कुछ भी फैंसी की परवाह नहीं है। मुझे XML for <SCRIPT> के बारे में पता है, जो कई उपयोगी हो सकते हैं (इसलिए मैं इसे यहां से जोड़ रहा हूं), हालांकि इसका लाइसेंसिंग मेरे लिए वास्तव में उपयुक्त नहीं है। मुझे यकीन नहीं है कि jQuery में एक एक्सएमएल पार्सर शामिल है (मैं इस सामान के लिए बिल्कुल नया हूं), लेकिन अगर यह करता है (और यह एक वर्कर के अंदर प्रयोग योग्य है), तो मैं सिर्फ कोड के अतिरिक्त ~ 50 के लाइनों को शामिल नहीं करता यह समारोह

मुझे लगता है कि मैं जावास्क्रिप्ट में एक साधारण एक्सएमएल पार्सर लिख सकता हूं, मैं सोच रहा हूं कि मुझे एक त्वरित विकल्प याद आ रहा है या नहीं।

उत्तर

4

spec

डोम API (नोड वस्तुओं, दस्तावेज़ वस्तुओं, आदि) के अनुसार इस विनिर्देश के इस संस्करण में श्रमिकों के लिए उपलब्ध नहीं हैं।

मैं thats लगता है क्यों DOMParser availlable नहीं है, लेकिन मैं वास्तव में समझ में नहीं आता क्यों कि निर्णय लिया गया था। (लाए जाने और एक XML दस्तावेज़ प्रसंस्करण एक WebWorker में unreasonnable नहीं लगता है)

लेकिन आप उपलब्ध अन्य उपकरणों आयात कर सकते हैं: a "Cross Platform XML Parsing in JavaScript"

+2

स्पष्ट रूप से फ़ायरफ़ॉक्स जैसे कुछ ब्राउज़र को XML पार्सर में मुख्य थ्रेड का उपयोग करना होगा, स्रोत: http: //w3-org.9356 .n7.nabble.com/सीमित-डोम-इन-वेब-वर्कर्स-td44284.html –

+0

यह दुखद है लेकिन xmljs है बहुत धीमी (डोमपार्सर की तुलना में) – SalientBrain

2

इस बिंदु मैं अपने पार्सर साझा करना चाहते पर: https://github.com/tobiasnickel/tXml

अपने tXml साथ

() विधि आप किसी ऑब्जेक्ट में स्ट्रिंग को पार्स कर सकते हैं और इसमें केवल 0.5kb minified + gzipped

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