谁能帮我用pull解析这段xml
xml文件如下,解析大概方法有下面,只是会报错,请帮我在XmlPullParser.START_TAG:下面完善一下。我运行可以的话,就给分了,多谢了!
<?xml version="1.0" encoding="utf-8"?>
<asResponse>
<commands>
<args>ooka</args>
<args>http://xiaoi.cc.cn/robot/as/20151617</args>
<args>http://xiaoi.cc.cn/robot/as/20151614</args>
<name>amsg</name>
<state>1</state>
</commands>
<moduleId>core</moduleId>
<nodeId>asddf0d1a8050062e2</nodeId>
<similarity>4.0</similarity>
<type>1</type>
</asResponse>
解析错误的方法:
public static RobotMessage parse(String xml)
{
RobotMessage robotMessage = null;
try
{
StringReader sr = new StringReader(xml);
XmlPullParser xmlPullParser = Xml.newPullParser();
xmlPullParser.setInput(sr);
int eventType = xmlPullParser.getEventType();
ArrayList<String> args = new ArrayList<String>();
while (eventType != XmlPullParser.END_DOCUMENT)
{
String element;
switch (eventType)
{
case XmlPullParser.START_DOCUMENT:
robotMessage = new RobotMessage();
break;
case XmlPullParser.START_TAG:
{
element = xmlPullParser.getName();
if (element.equalsIgnoreCase("args"))
{
args.add(xmlPullParser.nextText());
}
else if (element.equalsIgnoreCase("name"))
{
args.add(xmlPullParser.nextText());
robotMessage.setCommands(args);
}
else if (element.equalsIgnoreCase("moduleId"))
{
String moduleId = xmlPullParser.nextText();
robotMessage.setModuleId(moduleId);
} else if (element.equalsIgnoreCase("nodeId"))
{
String nodeId = xmlPullParser.nextText();
robotMessage.setNodeId(nodeId);
} else if (element.equalsIgnoreCase("similarity"))
{
String similarity = xmlPullParser.nextText();
robotMessage.setSimilarity(similarity);
} else if (element.equalsIgnoreCase("type"))
{
String type = xmlPullParser.nextText();
robotMessage.setType(type);
}
}
break;
}
eventType = xmlPullParser.next();
}
} catch (Exception ex)
{
ex.printStackTrace();
}
return robotMessage;
}
<?xml version="1.0" encoding="utf-8"?>
<asResponse>
<commands>
<args>ooka</args>
<args>http://xiaoi.cc.cn/robot/as/20151617</args>
<args>http://xiaoi.cc.cn/robot/as/20151614</args>
<name>amsg</name>
<state>1</state>
</commands>
<moduleId>core</moduleId>
<nodeId>asddf0d1a8050062e2</nodeId>
<similarity>4.0</similarity>
<type>1</type>
</asResponse>
解析错误的方法:
public static RobotMessage parse(String xml)
{
RobotMessage robotMessage = null;
try
{
StringReader sr = new StringReader(xml);
XmlPullParser xmlPullParser = Xml.newPullParser();
xmlPullParser.setInput(sr);
int eventType = xmlPullParser.getEventType();
ArrayList<String> args = new ArrayList<String>();
while (eventType != XmlPullParser.END_DOCUMENT)
{
String element;
switch (eventType)
{
case XmlPullParser.START_DOCUMENT:
robotMessage = new RobotMessage();
break;
case XmlPullParser.START_TAG:
{
element = xmlPullParser.getName();
if (element.equalsIgnoreCase("args"))
{
args.add(xmlPullParser.nextText());
}
else if (element.equalsIgnoreCase("name"))
{
args.add(xmlPullParser.nextText());
robotMessage.setCommands(args);
}
else if (element.equalsIgnoreCase("moduleId"))
{
String moduleId = xmlPullParser.nextText();
robotMessage.setModuleId(moduleId);
} else if (element.equalsIgnoreCase("nodeId"))
{
String nodeId = xmlPullParser.nextText();
robotMessage.setNodeId(nodeId);
} else if (element.equalsIgnoreCase("similarity"))
{
String similarity = xmlPullParser.nextText();
robotMessage.setSimilarity(similarity);
} else if (element.equalsIgnoreCase("type"))
{
String type = xmlPullParser.nextText();
robotMessage.setType(type);
}
}
break;
}
eventType = xmlPullParser.next();
}
} catch (Exception ex)
{
ex.printStackTrace();
}
return robotMessage;
}
...全文
相关推荐
Pull 解析xml
Pull解析XML"是Android系统中处理XML文档的一种高效方法,相较于DOM(Document Object Model)和SAX(Simple API for XML),Pull解析器在内存占用和性能上有显著优势
Android XML数据生成与PULL解析技术详解
PULL解析器是一种基于事件的XML解析方式。与SAX解析器类似,它也是在XML文档的解析过程中触发一系列事件,开发者可以在这些事件触发时编写特定的逻辑来处理XML数据。PULL解析器的事件驱动模型,使得它在处理大型XML文件时非常高效。
android 安卓xml pull解析
一、XML Pull解析基础XML Pull解析是一种事件驱动的解析方式,它不像DOM解析那样一次性加载整个XML文档到内存中,而是通过迭代的方式逐个读取XML元素。
Android studio下的XML pull 解析 demo
XML Pull解析是Android开发中处理XML数据的一种高效方式,它允许开发者通过事件驱动的模型来解析XML文档。
使用Android自带的XML解析器PULL解析器简单的解析xml
Android系统提供了一种轻量级的XML解析方式——PULL解析器(Pull Parser),它适用于处理大型XML文档,因为它不需要像DOM解析器那样一次性加载整个XML文档到内存中。


