我尝试使用XmlPullParser从XML获取值,但无法达到我想要的值。 XML结构类似于Android Strings.xml:
<string name="value"> 1 </string>
我可以获得“string”,“name”&amp;来自XML的“值”但不能达到实际值“1”。似乎XmlPullParser仅适用于这样的结构:
<value> 1 </value>
我是否需要使用其他解析器,或者是否有办法以某种方式达到“1”(上面的值)?
谢谢!
答案 0 :(得分:12)
nextText()
方法可以解决问题
答案 1 :(得分:5)
您检查过XmlPullParser的documentation吗?它有一个如何使用它的例子。
基本上,当您在调用getText
时解析器到达正确位置时,您可以通过调用next
来获取标记内的值。
答案 2 :(得分:0)
使用如何实际使用此代码的代码段来扩展之前的答案。
/* initialization skipped */
eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
Log.d("Task2/Parser","Start document");
} else if(eventType == XmlPullParser.START_TAG) {
Log.d("Task2/Parser", "Start tag "+xpp.getName());
if (xpp.getName().equals("temperature")){
temperature = Double.parseDouble(xpp.nextText());
return temperature;
}
} else if(eventType == XmlPullParser.END_TAG) {
Log.d("Task2/Parser", "End tag "+xpp.getName());
} else if(eventType == XmlPullParser.TEXT) {
Log.d("Task2/Parser", "Text "+xpp.getText());
}
eventType = xpp.next();
}
此代码将xml标记<temperature>
中的值作为double返回。显然,它需要更多的错误处理,但正如其他人在这里结束可以用较少的谷歌搜索来获得它。