I need to Parsing CDATA from xml/rss feed in android but XML parser ignore data within CDATA from this url: http://ift.tt/1lVQEwO
code here
import java.util.ArrayList; import java.util.List;
import javax.xml.xpath.XPath; import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ListView;
public class MainActivity extends Activity {
private ListView event_list;
private List<Model> arrayOfList;
private Adaptor_Events objAdapter;
private String eventsURL;
private String eventTitle, venuName, dateTime, desc, picURI;
private String KEY_ITEM = "newsItem"; // main item key
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
event_list = (ListView) findViewById(R.id.newsList);
new Async().execute();
}
private class Async extends AsyncTask<String, Void, Boolean> {
private String response, message;
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
arrayOfList = new ArrayList<Model>();
eventsURL = "http://ift.tt/1lVQEwO";
}
@Override
protected Boolean doInBackground(String... params) {
// TODO: attempt authentication against a network service.
XMLParser parser = new XMLParser();
XPath xPath = XPathFactory.newInstance().newXPath();
String xml = parser.getXmlFromUrl(eventsURL); // getting XML
Document doc = parser.getDomElement(xml); // getting DOM element
NodeList nl = doc.getElementsByTagName(KEY_ITEM);
try {
for (int i = 0; i < nl.getLength(); i++) {
Element e = (Element) nl.item(i);
arrayOfList.add(new Model(parser.getValue(e, "newsTitle"),
parser.getValue(e, "imageURL"), parser.getValue(e,
"newsURL"), parser.getValue(e, "newsDesc"),
parser.getValue(
e,
xPath.evaluate(
"//newsItem/newsDetails/text()",
doc).trim()), parser.getValue(e,
"newsDate")));
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(final Boolean success) {
setAdapterToListview();
}
}
public void setAdapterToListview() {
objAdapter = new Adaptor_Events(MainActivity.this, R.layout.item_list,
arrayOfList);
event_list.setAdapter(objAdapter);
}
}
No comments:
Post a Comment