我試圖從遠程API解析某些XML,則XML形成這樣的:的Java XML解析錯誤打印節點值
<django-objects version="1.0">
<object pk="13" model="ballot.poll">
<field type="CharField" name="question">wwwww</field>
<field type="DecimalField" name="budget">1</field>
<field type="CharField" name="option1"></field>
<field type="CharField" name="option2"></field>
<field type="CharField" name="option3"></field>
<field type="CharField" name="option4"></field>
<field type="CharField" name="pollType">YesNo</field>
<field type="DateField" name="startDate">2013-05-17</field>
<field type="DateField" name="endDate">2013-05-17</field>
<field type="CharField" name="targetGender">M</field>
<field type="CharField" name="targetMarital">All</field>
<field type="SmallIntegerField" name="targetMinAge">1</field>
<field type="SmallIntegerField" name="targetMaxAge">1</field>
</object>
</django-objects>
這裏是我的解析代碼,它試圖輸出nodevaluewith時崩潰一個 「的println需要消息」 異常
InputStream is = new ByteArrayInputStream(msg.getBytes());
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setCoalescing(true);
DocumentBuilder builder = null;
try {
builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Document dom = null;
try {
dom = builder.parse(is);
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch blockk
e.printStackTrace();
}
org.w3c.dom.Element root = dom.getDocumentElement();
NodeList items = root.getElementsByTagName("field");
**Log.d("number of fields: ",items.getLength());** // this outputs 13 as expected because there are 13 field elements
for (int i = 0; i < items.getLength(); i++) {
Node item = items.item(i);
**Log.d("field", item.getNodeValue());** //crash here
}
您可以發佈您提到的崩潰的異常或原因嗎? – HeatfanJohn
增加了錯誤,它的「println需要一個消息」,就像沒有任何東西被返回.getNodeValue() – brux
你在說'item.getNodeValue()'返回null。由於這是XML,因此您考慮使用org.xmlpull.v1.XmlPullParser,如http://developer.android.com/training/basics/network-ops/xml.html中所述 – HeatfanJohn