के लिए एक जावास्क्रिप्ट पार्सर हमारे पास एक प्रोजेक्ट में एक विशेष आवश्यकता है जहां हमें HTML की एक स्ट्रिंग (AJAX प्रतिक्रिया से) क्लाइंट साइड जावास्क्रिप्ट केवल के माध्यम से पार्स करना होगा। ठीक है PHP या जावा में कोई पार्सिंग नहीं है! मैं पूरे सप्ताह में स्टैक ओवरव्लो के माध्यम से जा रहा हूं और अभी तक स्वीकार्य समाधान नहीं मिला है।DOM
आवश्यकताओं पर कुछ और जानकारी:
हम किसी भी पुस्तकालय का उपयोग कर सकते (अधिमानतः dojo और/या jQuery) या देशी जाना!
हम एक पूरे HTML दस्तावेज़ हम एक स्ट्रिंग,
<head>
और<body>
सहित प्राप्त होने पार्स करने के लिए की जरूरत है।हमें कभी-कभी तारों के लिए पार्स किए गए डोम संरचनाओं को क्रमबद्ध करने की आवश्यकता होती है।
अंत में, हम वर्तमान दस्तावेज़ में पार्स किए गए डॉम को जोड़ना नहीं चाहते हैं। इसके बजाय, हम इसे स्थायी भंडारण के लिए सर्वर पर वापस भेज देंगे।
उदाहरण के लिए:
एक TinyMCE Parser: हम की तरह
अपना शोध के साथvar dom = HTMLtoDOM('<html><head><title> This is the old title. </title></head></html>'); dom.getElementsByTagName('title')[0].innerHTML = "This is a new Title";
कुछ चाहिए, ये हमारे विकल्प हैं। मुसीबत? हमें जरूरी एक संपादक को शामिल करने की ज़रूरत है जो मुझे लगता है। HTML को पार्स करने के बारे में कैसे हमें एक संपादक की आवश्यकता नहीं है?
John Resig's Parser। हमारी सर्वश्रेष्ठ शर्त होना चाहिए। दुर्भाग्य से, जब पेज की पूरी सामग्री इसे दी जाती है तो पार्सर क्रैश हो रहा है!
jQuery $ (htmlString) या dojo.toDom (htmlString)। दोनों पर भरोसा करते हैं दस्तावेज़फ्रेगमेंट और इसलिए
<head>
और<body>
पर गठबंधन करें!
संपादित: हम HTML क्रमानुसार करने तो हम रेगुलर एक्सप्रेशन के माध्यम से कुछ कस्टम HTML Commnets को पकड़ सकता है चाहता हूँ। हमें उपयोगकर्ताओं को मेटा टैग, शीर्षक टैग इत्यादि को संपादित करने का अवसर देना है, इसलिए HTML पार्सर।
ओह और मुझे लगता है कि मुझे स्टैक ओवरफ़्लो में हत्या कर दी जाएगी, भले ही मैं संकेत RegExp के माध्यम से एचटीएमएल पर पार्सिंग पर !!!
एक आईएफआरएएम नोड बनाएं और इसे वहां पर सामान दें? –
लेकिन .. मुझे समझ में नहीं आता कि आप सर्वर पर भेजने से पहले पहले से ही धारावाहिक HTML स्ट्रिंग को 'पार्स' क्यों करना चाहते हैं। आपको सर्वर पर वापस इसे पास करने के लिए इसे किसी स्ट्रिंग में वापस फिर से क्रमबद्ध करना होगा, है ना? –
@ जेन्स रोलैंड हम RegExp से कुछ कस्टम HTML टिप्पणियां पकड़ना चाहते हैं इसलिए serialization। हम उपयोगकर्ताओं को शीर्षक टैग, मेटा टैग आदि को संपादित करने की क्षमता देना चाहते हैं इसलिए डीओएम पार्सिंग! –