I am trying to parse xml through JAVA but after parsing I get org.apache.harmony.xml.dom.DocumentImpl@418b4c98.
Here is the XML what I am tring to parse, for example, i need id data is 5 and default_image is https://www.10ngah.com/api/images/products/5/5
Xml
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<products>
<product>
<id>
<![CDATA[ 5 ]]>
</id>
<id_default_image xlink:href="https://www.10ngah.com/api/images/products/5/5"not_filterable="true">
<![CDATA[ 5 ]]>
</id_default_image>
<price>
<![CDATA[ 525 ]]>
</price>
<name>
<language id="1" xlink:href="https://www.10ngah.com/api/languages/1">
<![CDATA[ iPad 2 GB with Cellular ]]>
</language>
</name>
</product>
<product>
<id>
<![CDATA[ 6 ]]>
</id>
<id_default_image xlink:href="https://www.10ngah.com/api/images/products/6/6" not_filterable="true">
<![CDATA[ 6 ]]>
</id_default_image>
<price>
<![CDATA[ 525 ]]>
</price>
<name>
<language id="1" xlink:href="https://www.10ngah.com/api/languages/1">
<![CDATA[ iPad 2 GB with Cellular ]]>
</language>
</name>
</product>
</products>
</prestashop>
Parsing code
package com.prestoshop.xmlparser;
import java.util.List;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import android.app.Activity;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.BaseAdapter;
import android.widget.Toast;
import com.prestoshop.beans.ProductItems;
import com.prestoshop.utils.Utils;
public class ProductLoaderTask extends AsyncTask<Void, ProductItems, Void> {
private Activity mContext;
private List<ProductItems> products;
private BaseAdapter adapter;
public ProductLoaderTask(Activity context, List<ProductItems> productList,
BaseAdapter adapter) {
mContext = context;
products = productList;
this.adapter = adapter;
}
static final String KEY_PRESTASHOP = "prestashop";
static final String KEY_ALL_PRODUCTS = "products";
@Override
protected Void doInBackground(Void... params) {
String url = Utils.PRODUCTS_URL;// use varargs just like an array
Log.e("urlll", "" + url);
XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(url);
Log.e("string xml", "" + xml);
Document doc = parser.getDomElement(xml, mContext);
NodeList nl = doc.getElementsByTagName("product");
Log.e("noddd",""+nl);
for (int i = 0; i < nl.getLength(); i++) {
Element e = (Element) nl.item(i);
Log.e("eeee", "" + e.toString());
Log.e("nodelist", ""
+ parser.getValue(e, "price").toString());
publishProgress(new ProductItems(
parser.getValue(e, "name"),
parser.getValue(e, "id"), parser.getValue(e,
"id_default_image"), 12.050000));
}
return null;
}
@Override
protected void onProgressUpdate(ProductItems... values) {
ProductItems product = values[0];
products.add(product);
adapter.notifyDataSetChanged();
}
@Override
protected void onPostExecute(Void result) {
Log.e("All done", products.toString());
super.onPostExecute(result);
}
}
toString()on the document, and it looks like it hasn't been overridden. Unfortunately we can't see your code, nor do we know what you're trying to achieve, which makes it hard to help you.XmlPullParser?developer.android.com/training/basics/network-ops/xml.html