標籤:android style blog http io ar color os 使用
首先是FriendBean
package com.example.other;public class FriendBean{ private String FName = null; private String FImg = null; private int iID = -1; public String getFName() { return FName; } public void setFName(String fName) { FName = fName; } public String getFImg() { return FImg; } public void setFImg(String fImg) { FImg = fImg; } public int getID() { return iID; } public void setID(int iId) { this.iID = iId; } }
然後建立類FriendXMLContentHandler,使用sax解析xml
package com.example.other;import java.util.ArrayList;import java.util.List;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;/* * * 解析如下xml * <friend id="1"> * <fname></fname> * <fimg></fimg> * </friend> * <friend>。。。。 * * * 使用: * public static List<friend> readXML(InputStream inStream) * { * try { * //建立解析器 * SAXParserFactory spf = SAXParserFactory.newInstance(); * SAXParser saxParser = spf.newSAXParser(); * //設定解析器的相關特性,true表示開啟命名空間特性 * saxParser.setProperty("http://xml.org/sax/features/namespaces",true); * XMLContentHandler handler = new XMLContentHandler(); * saxParser.parse(inStream, handler); * inStream.close(); * return handler.getAllFriends(); * } * catch (Exception e) * { * e.printStackTrace(); * } * return null; *} * * */public class FriendXMLContentHandler extends DefaultHandler{ private List<FriendBean> m_lFriends = null; private FriendBean m_currentFriend = null; // 記錄當前對象 private String m_tagName = null; // 當前解析的元素標籤 public List<FriendBean> getAllFriends() { return m_lFriends; } // 接到文檔開始 @Override public void startDocument() throws SAXException { // TODO Auto-generated method stub m_lFriends = new ArrayList<FriendBean>(); super.startDocument(); } // 開始解析 @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { // TODO Auto-generated method stub if ( localName.equals("friend") ) { m_currentFriend = new FriendBean(); m_currentFriend.setID(Integer.parseInt(attributes.getValue("id"))); } this.m_tagName = localName; } // 進入friend內 @Override public void characters(char[] ch, int start, int length) throws SAXException { // TODO Auto-generated method stub if ( m_tagName != null ) { String data = new String(ch, start, length); if ( m_tagName.equals("fname") ) { this.m_currentFriend.setFName(data); } else if ( m_tagName.equals("fimg") ) { this.m_currentFriend.setFImg(data); } } } // @Override public void endElement(String uri, String localName, String qName) throws SAXException { // TODO Auto-generated method stub if ( localName.equals("friend") ) { m_lFriends.add(m_currentFriend); m_currentFriend = null; } this.m_tagName = null; }}
android_好友名單XML解析構造