मैं एक HTML.tts एंड्रॉइड ऐप के लिए एक HttpPost से सर्वर (last.fm) पर प्राप्त XML HttpResponse को पार्स करने का प्रयास कर रहा हूं। अगर मैं इसे स्ट्रिंग करने के लिए बस पार्स करता हूं तो मैं सभी वांछित जानकारी के साथ एक सामान्य xml स्ट्रिंग देख सकता हूं। लेकिन मैं सिर्फ एक नाम ValuePairs पार्स नहीं कर सकता।एक एक्सएमएल HttpResponse पार्सिंग
HttpResponse response = client.execute(post);
HttpEntity r_entity = response.getEntity();
मैं दो अलग बातें करने की कोशिश की है और उनमें से गैर काम किया: यह मेरा HttpResponse वस्तु है। सबसे पहले मैंने NameValuePairs को पुनर्प्राप्त करने का प्रयास किया:
List<NameValuePair> answer = URLEncodedUtils.parse(r_entity);
String name = "empty";
String playcount = "empty";
for (int i = 0; i < answer.size(); i++){
if (answer.get(i).getName().equals("name")){
name = answer.get(i).getValue();
} else if (answer.get(i).getName().equals("playcount")){
playcount = answer.get(i).getValue();
}
}
इस कोड के बाद, नाम और प्लेकाउंट "खाली" रहता है।
DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document answer = db.parse(new DataInputStream(r_entity.getContent()));
NodeList nl = answer.getElementsByTagName("playcount");
String playcount = "empty";
for (int i = 0; i < nl.getLength(); i++) {
Node n = nl.item(i);
Node fc = n.getFirstChild();
playcount Url = fc.getNodeValue();
}
यह बहुत पहले विफल, क्योंकि यह भी playcount चर स्थापित करने के लिए नहीं मिलता है लगता है: तो मैं एक एक्सएमएल पार्सर का उपयोग करने की कोशिश की। लेकिन जैसे मैंने कहा कि अगर मैं इसे करता हूं:
EntityUtils.toString(r_entity);
मुझे एक पूर्ण एक्सएमएल स्ट्रिंग मिल जाएगी। इसलिए HttpResponse में सही जानकारी होने के बाद इसे पार्स करने में कोई समस्या नहीं होनी चाहिए। मैं क्या गलत कर रहा हूं?
हाँ। आप सही हे। मैंने इसे बदल दिया लेकिन यह लेकिन दोनों चर अभी भी "खाली" – gaussd