1.pull解析
apps> // xml Demo
<app>
<id>1</id>
<name>node1</name>
<version>1</version>
</app>
<app>
<id>2</id>
<name>node2</name>
<version>1</version>
</app>
<app>
<id>3</id>
<name>node3</name>
<version>1</version>
</app>
</apps>
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(new StringReader(xmlData));
int type = parser.getEventType();
String id = "";
String name = "";
String version = "";
while (type != XmlPullParser.END_DOCUMENT) {
String nodeName = parser.getName();
switch (type) {
case XmlPullParser.START_TAG:
if ("id".equals(nodeName)) {
id = parser.nextText();
} else if ("name".equals(nodeName)) {
name = parser.nextText();
} else if () {
}
break;
case XmlPullParser.END_TAG:
if ("app".equals(nodeName)) {
Log.d(TAG, "id id " + id);
}
break;
}
type = parser.next();
}
}catch(Exception e){
}
2.SAX解析
try{
SAXParserFactory factory=SAXParserFactory.newInstance();
XMLReader xmlReader=factory.newSAXParser().getXMLReader();
// SAXHandler handler=new SAxHandler();
xmlReader.setContentHandler(handler);
xmlReader.parse(new InputSource(new StringReader(xmlData)));
}catch (Exception e){
}
public class SAXHandler extends DefaultHandler{
private String nodeName;
private StringBuilder id,name,version;
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
nodeName=localName;
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
if("id".equals(nodeName)){
id.append(ch,start,length);
}else if(){}
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
if("app".equals(localName)){
Log.d;
}
}
@Override
public void startDocument() throws SAXException {
id=new StringBuilder();
name=new StringBuilder();
version=new StringBuilder();
}
@Override
public void endDocument() throws SAXException {
super.endDocument();
}
}