Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android學習筆記---Android平台1.使用dom解析xml文件

Android學習筆記---Android平台1.使用dom解析xml文件

編輯:關於Android編程

1.使用dom解析xml文件 除了使用 SAX可以解析XML文件,大家也可以使用熟悉的DOM來解析XML文件。 DOM解析XML文     件時,會將XML文件的所有內容以文檔樹方式存放在內存中,然後允許您使用DOM API遍歷XML     樹、檢索所需的數據。使用DOM操作XML的代碼看起來是比較直觀的,並且在編碼方面比基於     SAX的實現更加簡單。但是,因為DOM需要將XML文件的所有內容以文檔樹方式存放在內存中,     所以內存的消耗比較大,特別對於運行Android的移動設備來說,因為設備的資源比較寶貴,     所以建議還是采用SAX來解析XML文件,當然,如果XML文件的內容比較小采用DOM也是可行的 代碼請看本頁下方備注 import java.io.InputStream; import java.util.ArrayList; import java.util.List;     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 cn.itcast.xml.domain.Person; /**  * 使用Dom解析xml文件  *  */ public class DomXMLReader {     public static List readXML(InputStream inStream) { List persons = new ArrayList(); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = factory.newDocumentBuilder(); Document dom = builder.parse(inStream); Element root = dom.getDocumentElement(); NodeList items = root.getElementsByTagName("person");//查找所有     person節點 for (int i = 0; i < items.getLength(); i++) { Person person = new Person(); //得到第一個person節點 Element personNode = (Element) items.item(i); //獲取person節點的id屬性值 person.setId(new Integer(personNode.getAttribute("id"))); //獲取person節點下的所有子節點(標簽之間的空白節點和     name/age元素) NodeList childsNodes = personNode.getChildNodes(); for (int j = 0; j < childsNodes.getLength(); j++) { Node node = (Node) childsNodes.item(j);        //判斷是否為元素類型 if(node.getNodeType() == Node.ELEMENT_NODE){          Element childNode = (Element) node;                                         //判斷是否name元素    if ("name".equals(childNode.getNodeName())) {     //獲取name元素下Text節點,然後從Text節點獲取數據             person.setName(childNode.getFirstChild     ().getNodeValue());    } else if (“age”.equals(childNode.getNodeName())) { person.setAge(new Short(childNode.getFirstChild     ().getNodeValue()));    } }        }    persons.add(person); } inStream.close(); } catch (Exception e) { e.printStackTrace(); } return persons; } ----------------------------------------------------------
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved