我一直试图解析XML文件,但getEventType方法总是返回0.而While循环正在永远执行。
public class FlowerPullParser
{
public static List<Flower> parseFed(String content) throws XmlPullParserException, IOException
{
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(new StringReader(content));
int eventType = parser.getEventType();
do
{
if(eventType == XmlPullParser.START_TAG)
Log.i("start-tag",parser.getText());
else if(eventType == XmlPullParser.END_TAG)
Log.i("End-tag",parser.getText());
else if(eventType == XmlPullParser.TEXT)
Log.i("Text-tag",parser.getText());
eventType = parser.next();
}while(eventType != XmlPullParser.END_DOCUMENT);
return null;
}
}
以下是我获取XML的链接
XML正在到来(通过可变内容),似乎我的代码有一些错误,但我无法理解我做错了什么。 答案和建议需要
谢谢!
答案 0 :(得分:2)
请尝试这种方式,希望这有助于您解决问题。
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new StringReader(content.replace("&","&")));
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
System.out.println("Start document");
} else if(eventType == XmlPullParser.START_TAG) {
System.out.println("Start tag "+xpp.getName());
} else if(eventType == XmlPullParser.END_TAG) {
System.out.println("End tag "+xpp.getName());
} else if(eventType == XmlPullParser.TEXT) {
System.out.println("Text "+xpp.getText());
}
eventType = xpp.next();
}