Первый ответ
Символ амперсанда ( & ) и левая угловая скобка ( <</strong>) НЕ ДОЛЖНЫ появляться в выходных данных xml в их буквальной форме, за исключением случаев, когда они используются в качестве разделителей разметки или внутри комментарий, инструкция по обработке или раздел CDATA . Если они нужны в другом месте, их необходимо экранировать, используя либо числовые ссылки на символы, либо строки " & " и " <</strong>" соответственно.
Правая угловая скобка (> ) может быть представлена с помощью строки " & gt ;", и ДОЛЖНА, для совместимости, экранироваться с помощью либо " & gt * 1022" *; "или символьная ссылка, когда она появляется в строке" ]]>"в содержимом, когда эта строка не отмечает конец CDATA раздела.
Пожалуйста, проверьте ваш xml, кажется, что это эти специальные символы ( &, <,> )
После обсуждения с Вайбхавом Джани
Вот пример XML-файла
<?xml version="1.0"?>
<first_screen>
<first_screen_object id="1">
<name><![CDATA[मानक हिन्दी]]></name>
<desc><![CDATA[मानक हिन्दीमानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी]]></desc>
</first_screen_object>
<first_screen_object id="2">
<name><![CDATA[मानक हिन्दी]]></name>
<desc><![CDATA[मानक हिन्दीमानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी]]></desc>
</first_screen_object>
<first_screen_object id="3">
<name><![CDATA[मानक हिन्दी]]></name>
<desc><![CDATA[मानक हिन्दीमानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी]]></desc>
</first_screen_object>
</first_screen>
А это SAX-парсер для образца XML
import java.io.InputStream;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.sax.Element;
import android.sax.EndTextElementListener;
import android.sax.RootElement;
import android.util.Xml;
public class HindiParser {
// Constructor
public HindiParser() {
}
public static InputStream getInputStreamFromUrl(String url) {
InputStream content = null;
try {
HttpGet httpGet = new HttpGet(url);
HttpClient httpclient = new DefaultHttpClient();
// Execute HTTP Get Request
HttpResponse response = httpclient.execute(httpGet);
content = response.getEntity().getContent();
} catch (Exception e) {
// handle the exception !
}
return content;
}
/*
* <?xml version="1.0"?> <first_screen> <first_screen_object id="1">
* <name><![CDATA[मानक हिन्दी]]></name> <desc><![CDATA[मानक हिन्दीमानक
* हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक
* हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी]]></desc>
* </first_screen_object>
*
* <first_screen_object id="2"> <name><![CDATA[मानक हिन्दी]]></name>
* <desc><![CDATA[मानक हिन्दीमानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी
* मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक
* हिन्दी]]></desc> </first_screen_object> </first_screen_object>
*
*
* <first_screen_object id="3"> <name><![CDATA[मानक हिन्दी]]></name>
* <desc><![CDATA[मानक हिन्दीमानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी
* मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक हिन्दी मानक
* हिन्दी]]></desc> </first_screen_object>
*
* </first_screen>
*/
public void parse() {
try {
RootElement root = new RootElement("first_screen");
Element firstScreenElemnet = root.getChild("first_screen_object");
firstScreenElemnet.getChild("name").setEndTextElementListener(
new EndTextElementListener() {
public void end(String body) {
System.out.println("Name is " + body);
}
});
firstScreenElemnet.getChild("desc").setEndTextElementListener(
new EndTextElementListener() {
public void end(String body) {
System.out.println("Description is " + body);
}
});
try {
Xml.parse(
getInputStreamFromUrl("http://pastebin.com/raw.php?i=M6zrbJ0W"),
Xml.Encoding.UTF_8, root.getContentHandler());
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}