我正在尝试阅读以下网址的XML响应 http://sagt.vizushop.com/DefaultSimple.aspx?command=default
我在我的android项目中使用以下代码来获取第一个项目,然后获取其第二个节点的值。
String uri="http://sagt.vizushop.com/DefaultSimple.aspx?command=default";
String [] data=new String [9];
try{
URL url = new URL(uri);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setDoOutput(true);
con.connect();
data = new String[9];
if (con.getResponseCode() == HttpURLConnection.HTTP_OK) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(con.getInputStream());
NodeList itemnodes=doc.getElementsByTagName("item");
Node firstitemnode=itemnodes.item(0);
NodeList childnodesoffirstitemnode=firstitemnode.getChildNodes();
Node firstnodeOffirstitem=childnodesoffirstitemnode.item(1);
String contenturl=firstnodeOffirstitem.getNodeValue().toString();
data[0] = contenturl;
}
但它提供了java.lang.NullPointerException。
请帮助解决此问题
提前感谢
答案 0 :(得分:1)
请使用以下代码使用Dom Parser进行XML解析。
public class XMLParsingDOMExample extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/** Create a new layout to display the view */
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(1);
/** Create a new textview array to display the results */
TextView id[];
TextView imageurl[];
try {
URL url = new URL("http://sagt.vizushop.com/DefaultSimple.aspx?command=default");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("item");
/** Assign textview array lenght by arraylist size */
id = new TextView[nodeList.getLength()];
imageurl = new TextView[nodeList.getLength()];
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
id[i] = new TextView(this);
imageurl[i] = new TextView(this);
Element fstElmnt = (Element) node;
NodeList idList = fstElmnt.getElementsByTagName("item_id");
Element idElement = (Element) idList.item(0);
idList = idElement.getChildNodes();
id[i].setText("id is = " + ((Node) idList.item(0)).getNodeValue());
NodeList imageurlList = fstElmnt.getElementsByTagName("item_image");
Element imageurlElement = (Element) imageurlList.item(0);
imageurlList = imageurlElement.getChildNodes();
imageurl[i].setText("imageurl is = " + ((Node) imageurlList.item(0)).getNodeValue());
layout.addView(id[i]);
layout.addView(imageurl[i]);
}
} catch (Exception e) {
System.out.println("XML Pasing Excpetion = " + e);
}
/** Set the layout view to display */
setContentView(layout);
}
}
有关详细信息,请参阅以下链接。