对于以下的xml文件:
rjzjh jjjjjj bbbb ccc
这样来解析:
import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.util.Log;
public class TestActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
XmlReader();
for(int i=0;i节点
mybook = new Book();
String email = book.getAttributes()
.getNamedItem("email").getNodeValue();
mybook.email = email;
for (Node node = book.getFirstChild(); node != null; node = node
.getNextSibling()) {
if (node.getNodeType() == Node.ELEMENT_NODE) {
if (node.getNodeName().equals("name")) {
String name1 = node.getFirstChild()
.getNodeValue();
mybook.name = name1;
}
if (node.getNodeName().equals("price")) {
String price = node.getFirstChild()
.getNodeValue();
mybook.price = price;
}
}
}
list.add(mybook);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private ArrayList list = new ArrayList();
private class Book{
String email;
String name;
String price;
} 采用SAXParserFactory:
本文档主要讲述的是Android数据格式解析对象JSON用法;JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服务器通信,在网络数据传输与解析时非常方便。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SAXParserFactory factory = SAXParserFactory.newInstance();
try {
SAXParser saxParser = factory.newSAXParser();
InputStream is = this.getAssets().open("test1.xml", Context.MODE_PRIVATE);
saxParser.parse(is, new MyDefaultHandler());
} catch (Exception ex) {
}
System.out.println("===size=" + list.size());
for (int i = 0; i < list.size(); i++) {
Book book = list.get(i);
Log.d("TAG", "name=" + book.name + "email=" + book.email);
}
}
protected String getElementName(String name, String qName) {
if ("".equals(name)) {
return qName;
} else {
return name;
}
}
class MyDefaultHandler extends DefaultHandler {
private StringBuffer buf;
private Book mBook;
public MyDefaultHandler() {
super();
mBook = new Book();
}
protected StringBuffer getBuffer() {
return this.buf;
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
buf = new StringBuffer();
for (int i = 0; i < attributes.getLength(); i++) {
String value = attributes.getValue(i);
mBook.email = value;
}
}
@Override
public void characters(char[] chars, int start, int length) throws SAXException {
super.characters(chars, start, length);
getBuffer().append(chars, start, length);
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
super.endElement(uri, localName, qName);
String elementName = getElementName(localName, qName);
if (elementName.equals("book")) {
list.add(mBook);
mBook = new Book();
} else if (elementName.equals("name")) {
mBook.name = getBuffer().toString();
} else if (elementName.equals("price")) {
mBook.price = getBuffer().toString();
}
}
}
private ArrayList list = new ArrayList();
private class Book {
String email;
String name;
String price;
@Override
public String toString() {
return "name=" + name + "price=" + price;
}
} 以上就是android如何使用DOM和SAXParserFactory来解析XML文件的内容,更多相关内容请关注PHP中文网(www.php.cn)!









