2012-07-20 19 views
12

में सामग्री की अनुमति नहीं है मैं जावा का उपयोग कर रहा हूं और मैं कुछ http लिंक से XML दस्तावेज़ प्राप्त करने का प्रयास कर रहा हूं। कोड मैं का उपयोग कर रहा है:घातक त्रुटि: 1: 1: प्रोलॉग

URL url = new URL(link); 

HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.connect(); 
Document doc = null; 

CountInputStream in = new CountInputStream(url.openStream()); 
doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in); 

CountInputStream पर ध्यान देना मत करो, यह नियमित रूप से इनपुट धारा जैसे कुछ विशेष वर्ग अभिनय है।

उपरोक्त कोड का उपयोग करके, मुझे कभी-कभी त्रुटि Fatal Error :1:1: Content is not allowed in prolog मिली। मुझे लगता है कि xml के खराब प्रारूप के साथ कुछ करने के लिए है, लेकिन मुझे नहीं पता कि इसे कैसे ठीक किया जाए।

+1

संभव डुप्लिकेट "सामग्री prolog में अनुमति नहीं है।" देता है त्रुटि] (http://stackoverflow.com/questions/2599919/java-parsing-xml-document-gives-content-not-allowed-in-prolog-error) –

+0

ठीक है जैसा कि मैं समझ गया था कि आप जिस धागे का जिक्र कर रहे हैं उसके बारे में है डिस्क से एक्सएमएल पढ़ना। मेरे मामले में मेरे पास डिस्क पर एक्सएमएल नहीं है, मेरे पास बस कुछ स्ट्रिंग (लिंक) है और मुझे एक्सएमएल फाइल मिलने से पहले त्रुटि मिली है ... – guest86

+0

क्या आप यूआरएल को प्रश्न में दे सकते हैं? इसका सबसे संभावित कारण एक विकृत प्रतिक्रिया है, इसलिए उस पर एक मूल्यवान मूल्यवान होगा। – MvG

उत्तर

18

मैं अपनी टिप्पणी को एक उत्तर में बदल रहा हूं, इसलिए इसे स्वीकार किया जा सकता है और यह प्रश्न अब अनुत्तरित नहीं है।

इसका सबसे संभावित कारण एक विकृत प्रतिक्रिया है, जिसमें शुरुआती <?xml …> से पहले वर्ण शामिल हैं। तो कृपया HTTP पर स्थानांतरित दस्तावेज़ के रूप में एक नज़र डालें, और सर्वर पक्ष पर इसे ठीक करें।

+0

फ़ाइल के शुरू होने पर ये अजीब पात्र बीओएम (बाइट ऑर्डर मार्क) हैं, आदर्श बीओएम यूटीएफ -8 एन्कोडिंग के साथ उपस्थित नहीं होना चाहिए क्योंकि जावा पार्स में विफल रहता है इस तरह के अपवाद और उपरोक्त त्रुटि देता है – techExplorer

6

निश्चित रूप से कुछ अजीब पात्र हैं (उदा। BOM) या एक्सएमएल प्रीम्बल (<?xml ...?>) से पहले कुछ सफेद जगह?

+1

के संभावित डुप्लिकेट मेरे मामले में मैंने जावा शैली टिप्पणियों का उपयोग करके एक्सएमएल में गलत तरीके से टिप्पणी की थी । जैसे का उपयोग करने के बजाय मैंने/* */निकालने के लिए इसे ठीक किया है – Chaitanya

0

किसी को इस प्रश्न का उत्तर के रूप में जोहान्स वीस की टिप्पणी को चिह्नित करना चाहिए। यही कारण है कि एक्सएमएल दस्तावेजों को सिर्फ डीओएम दस्तावेज़ वर्ग में लोड नहीं किया जा सकता है।

http://en.wikipedia.org/wiki/Byte_order_mark

की [जावा XML दस्तावेज़ पार्स करने
संबंधित मुद्दे