मुझे बताएं कृपया पार्सिंग की प्रक्रिया को तोड़ना संभव है? अर्थात। इस लूप से बाहर निकलें दस्तावेज़ और अंत घटना "endDocument" के अंत तक नहीं पहुंच रहा है?जावा। सैक्स पार्सर मैन्युअल रूप से पार्सिंग कैसे तोड़ें?
उत्तर
हैंडलर में एक अपवाद फेंक और कोड ब्लॉक में इसे पकड़ जहां पार्स शुरू कर दिया:
try {
...
xmlReader.parse();
} catch (SAXException e) {
if (e.Cause instanceof BreakParsingException) {
// we have broken the parsing process
....
}
}
और अपने DocumentHandler में:
public void startElement(String namespaceURI,
String localName,
String qName,
Attributes atts)
throws SAXException {
// ...
throw new SAXException(new BreakParsingException());
}
बीटीडब्लू: 2 साल बाद मैं शुरू कर रहा हूं लगता है कि यह बहुत दुर्भाग्यपूर्ण है कि हमें प्रवाह को नियंत्रित करने के लिए अपवाद का उपयोग करना होगा। पार्स प्रक्रिया को तोड़ना गैर-त्रुटि परिदृश्यों में पूरी तरह से मान्य हो सकता है ... यदि कभी भी कोई बेहतर समाधान पाता है तो मुझे इसे पढ़ने में खुशी होगी! – chiccodoro
[SAXParseException] (http://www.saxproject.org/apidoc/org/xml/sax/SAXParseException.html) के उप-वर्ग को फेंक दें और आपको [ErrorHandler] (http: // www में कॉलबैक मिलेगा। saxproject.org/apidoc/org/xml/sax/ErrorHandler.html)। –
आप एक SAXException फेंक करने के लिए है। इसे नियमित त्रुटियों से दूर करने के लिए मैं इसे अपने स्वयं के अपवाद वर्ग
सरल समाधान एसएक्स के बजाय - स्थिर मुद्रा का उपयोग करना होगा। जबकि एसएएक्स ने पुशिंग को धक्का दिया है - पार्सर्स द्वारा हैंडलर को ईवेंट भेजे जाते हैं, स्टैक्स पुल पार्सिंग है, एक्सएमलेवेंट रीडर के माध्यम से हमें घटनाएं दी जाती हैं जिन्हें एक इटरेटर के समान इस्तेमाल किया जा सकता है। इसलिए, पार्सिंग से बाहर निकलने के लिए सशर्त ब्रेक को कार्यान्वित करना आसान है।
- 1. जावा सैक्स पार्सिंग
- 2. जावा सैक्स पार्सर प्रगति की निगरानी
- 3. सैक्स पार्सिंग और एन्कोडिंग
- 4. मैन्युअल रूप से एएसटी कैसे बनाएं?
- 5. डोक्स पार्सिंग से सैक्स पार्सिंग तेज क्यों है? और कैसे काम करता है?
- 6. क्या जावा सैक्स पार्सर वास्तव में इंटरनेट से डीटीडी पुनर्प्राप्त करता है?
- 7. मैन्युअल रूप से उन्हें
- 8. मार्शल मैन्युअल रूप से
- 9. पाइथन मैन्युअल रूप से
- 10. मैन्युअल रूप से कॉमप्रेट
- 11. मैन्युअल रूप से
- 12. मैन्युअल रूप से devise
- 13. मैन्युअल रूप से आईडी
- 14. मैन्युअल रूप से सी # ऑब्जेक्ट्स
- 15. डोम बनाम सैक्स - एक्सएमएल
- 16. पोस्टग्रेस मैन्युअल रूप से अनुक्रम
- 17. मैं एक जटिल फॉर्मूला पार्सर मैन्युअल रूप से कैसे कोड करूं?
- 18. WIF मैन्युअल रूप से federationmetadata.xml
- 19. मैन्युअल रूप से एक अपवाद फेंक
- 20. जावा में पीडीएफ पार्सर एपीआई
- 21. QTextEdit। टेक्स्ट मैन्युअल रूप से कैसे चुनें?
- 22. मैन्युअल रूप से टाइपटाग कैसे बनाएं?
- 23. कैसे निर्भरता इंजेक्शन मैन्युअल रूप से कार्यान्वित?
- 24. कैसे मैन्युअल रूप से एक ggplot वस्तु
- 25. अपना खुद का एक्सएमएल पार्सर/एक्सएमएल पार्सिंग एल्गोरिदम रोल करें?
- 26. मैन्युअल रूप से नई पंक्ति
- 27. ggplot2: मैन्युअल रूप से स्केल_एरिया
- 28. विंडोज पर मैन्युअल रूप से जावा स्थापित करना?
- 29. मैन्युअल रूप से संदर्भ जोड़ें
- 30. मैन्युअल रूप से प्रेषण DOMContentLoaded
इस प्रश्न के समान ही http://stackoverflow.com/questions/1345293/how-to-stop-parsing-xml-document-with-sax-at-any-time – Brian