मैं पार्स करने और XML response
करने की कोशिश कर रहा हूं, लेकिन मैं बुरी तरह विफल रहा हूं। मैंने शुरुआत में सोचा था कि xml
प्रतिक्रिया में वापस नहीं किया जा रहा था, इसलिए मैंने नीचे दिए गए कोड को मेरे xml
फ़ाइल के सीधे लिंक के साथ तैयार किया। मैं बिना किसी समस्या के स्क्रीन पर XML
प्रिंट करने में सक्षम हूं। हालांकि जब मैं अपनी पार्स विधि को कॉल करता हूं तो मुझे फ़ाइल का समयपूर्व अंत मिलता है।मुझे यह त्रुटि क्यों मिल रही है फ़ाइल का समयपूर्व अंत?
यह काम करता है अगर मैं सीधे यूआरएल पारित:
- builder.parse ("");
लेकिन विफल रहता है जब मैं एक InputStream पारित कर दिया:
builder.parse (connection.getInputStream());
try { URL url = new URL(xml); URLConnection uc = url.openConnection(); HttpURLConnection connection = (HttpURLConnection)uc; connection.setDoInput(true); connection.setDoOutput(true); InputStream instream; InputSource source; //get XML from InputStream if(connection.getResponseCode()>= 200){ connection.connect(); instream = connection.getInputStream(); parseDoc(instream); } else{ instream = connection.getErrorStream(); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } static void parseDoc(InputStream instream) throws ParserConfigurationException, SAXException, IOException{ BufferedReader buff_read = new BufferedReader(new InputStreamReader(instream,"UTF-8")); String inputLine = null; while((inputLine = buff_read.readLine())!= null){ System.out.println(inputLine); } DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance(); factory.isIgnoringElementContentWhitespace(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(instream); }
त्रुटियों मैं हो रही है:
[Fatal Error] :1:1: Premature end of file.
org.xml.sax.SAXParseException: Premature end of file.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at com.ameba.api.network.MainApp.parseDoc(MainApp.java:78)
at com.ameba.api.network.MainApp.main(MainApp.java:41)
क्या आपके पास XML फ़ाइल है जिसे आप पार्स करने का प्रयास कर रहे हैं। फ़ाइल का समयपूर्व अंत इंगित करता है कि आपकी एक्सएमएल फ़ाइल पूरी नहीं हुई है, क्योंकि आप यहां यूआरएल कनेक्शन का उपयोग कर रहे हैं, मुझे नेटवर्क के मुद्दों पर संदेह है। इस समस्या को हल करने का सबसे अच्छा तरीका है वायरसहार्क या टीसीपी मॉनीटर प्रकार के उपकरण का उपयोग करके इस एक्सएमएल फ़ाइल को कैप्चर करना और फिर यह जांचना है कि यह – NiranjanBhat
@ निरंजनबैट है। हां एक्सएमएल पूर्ण और मान्य है। मैंने इस एक्सएमएल को सीधे लिंक के साथ पार्स किया है। ऐसा लगता है कि एक इनपुटस्ट्रीम का उपयोग करते समय केवल त्रुटि उत्पन्न होती है। – Fabii
आप पोस्ट क्यों कर रहे हैं लेकिन कोई डेटा नहीं भेज रहे हैं? – EJP