获得"零"在地方textvalue在Android的使用PullParser XML解析后 [英] Getting "null" in place of textvalue After parsing XML using PullParser in Android
本文介绍了获得"零"在地方textvalue在Android的使用PullParser XML解析后的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我看了一下这个。所以,请不要重定向我的网站。
I had a look at this. SO please dont redirect me to that site.
我已经使用DOM解析器和<一个href=\"http://stackoverflow.com/questions/17421506/how-to-parse-same-name-tag-in-android-xml-dom-parsing\">here是我的问题这一点。
I had already used DOM parser and here is my problem with that.
我有相同的XML:
<MyResource>
<Item>First</Item>
<Item>Second</Item>
</MyResource>
,现在我也没有办法,只能通过解析这个PullParser XML。
我的方法从这:
private List readFeed(XmlPullParser parser) throws XmlPullParserException, IOException {
// TODO Auto-generated method stub
List entries = new ArrayList();
parser.require(XmlPullParser.START_TAG, ns, "MyResource");
while (parser.next() != XmlPullParser.END_TAG) {
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue;
}
String name = parser.getName();
// Starts by looking for the entry tag
if (name.equals("MyResource")) {
entries.add(readEntry(parser));
} else {
skip(parser);
}
}
return entries;
}
private void skip(XmlPullParser parser) throws XmlPullParserException, IOException {
// TODO Auto-generated method stub
if (parser.getEventType() != XmlPullParser.START_TAG) {
throw new IllegalStateException();
}
int depth = 1;
while (depth != 0) {
switch (parser.next()) {
case XmlPullParser.END_TAG:
depth--;
break;
case XmlPullParser.START_TAG:
depth++;
break;
}
}
}
private Item readEntry(XmlPullParser parser) throws XmlPullParserException, IOException {
// TODO Auto-generated method stub
parser.require(XmlPullParser.START_TAG, ns, "Item");
String text = null;
while (parser.next() != XmlPullParser.END_TAG) {
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue;
}
String name = parser.getName();
if (name.equals("Item")) {
text = readMyText(parser);
} else {
skip(parser);
}
}
return new Item(text);
}
private String readMyText(XmlPullParser parser) throws XmlPullParserException, IOException {
// TODO Auto-generated method stub
parser.require(XmlPullParser.START_TAG, ns, "Item");
String text = readText(parser);
parser.require(XmlPullParser.END_TAG, ns, "Item");
return text;
}
private String readText(XmlPullParser parser) throws XmlPullParserException, IOException {
String result = "";
if (parser.next() == XmlPullParser.TEXT) {
result = parser.getText();
parser.nextTag();
}
return result;
}
我得到这个作为分析的文本:
I am getting this as the parsed text :
null
null
谁能帮我出这个?
Can anyone help me out of this ??
推荐答案
我可以提供一个样本code解析你的XML。在这里,你要去,
I can provide a sample code to parse your XML. Here u go,
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
boolean flag=false;
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new StringReader ("<MyResource><Item>First</Item> <Item>Second</Item>/MyResource>"));
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_TAG) {
System.out.println("Start tag "+xpp.getName());
if(xpp.getName().toString().equals("MyResource"){
flag=true;
}
else if(xpp.getName().toString().equals("Item"){
if(flag){
String test=xpp.nextText().toString();
//do whatever u want with the data
}
}
} else if(eventType == XmlPullParser.END_TAG) {
if(xpp.getText().equals("MyResource")
flag=false;
}
eventType = xpp.next();
}
这篇关于获得&QUOT;零&QUOT;在地方textvalue在Android的使用PullParser XML解析后的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文