WEB开发网
开发学院手机开发Android 开发 Android xml读写 阅读

Android xml读写

 2010-05-31 14:32:00 来源:WEB开发网   
核心提示:所提供的便捷的包装器,那么也可以使用它,Android xml读写(10),如果您完全不希望使用 SAX 会怎样呢?可以使用一些备选方案,其中的首选方法就是 DOM,回页首使用 DOMAndroid 完全支持 DOM 解析,就像在桌面机器或服务器上使用 Java 代码运行它一样
所提供的便捷的包装器,那么也可以使用它。如果您完全不希望使用 SAX 会怎样呢?可以使用一些备选方案。其中的首选方法就是 DOM。

回页首

使用 DOM

Android 完全支持 DOM 解析,就像在桌面机器或服务器上使用 Java 代码运行它一样。清单 9 显示了一个基于 DOM 的解析器接口实现。

清单 9. 基于 DOM 的提要解析器实现

public class DomFeedParser extends BaseFeedParser {

protected DomFeedParser(String feedUrl) {

super(feedUrl);

}

public List< Message > parse() {

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

List< Message > messages = new ArrayList< Message >();

try {

DocumentBuilder builder = factory.newDocumentBuilder();

Document dom = builder.parse(this.getInputStream());

Element root = dom.getDocumentElement();

NodeList items = root.getElementsByTagName(ITEM);

for (int i=0;i< items.getLength();i++){

Message message = new Message();

Node item = items.item(i);

NodeList properties = item.getChildNodes();

for (int j=0;j< properties.getLength();j++){

Node property = properties.item(j);

String name = property.getNodeName();

if (name.equalsIgnoreCase(TITLE)){

message.setTitle(property.getFirstChild().getNodeValue());

} else if (name.equalsIgnoreCase(LINK)){

message.setLink(property.getFirstChild().getNodeValue());

} else if (name.equalsIgnoreCase(DESCRIPTION)){

StringBuilder text = new StringBuilder();

NodeList chars = property.getChildNodes();

for (int k=0;k< chars.getLength();k++){

text.append(chars.item(k).getNodeValue());

}

message.setDescription(text.toString());

} else if (name.equalsIgnoreCase(PUB_DATE)){

message.setDate(property.getFirstChild().getNodeValue());

上一页  5 6 7 8 9 10 11 12 13  下一页

Tags:Android xml 读写

编辑录入:coldstar [复制链接] [打 印]
赞助商链接