1. Dom概述

Dom方式创建XML,应用了标准xml构造器 javax.xml.parsers.DocumentBuilder 来创建 XML 文档,需要导入以下内容

javax.xml.parsers
 

javax.xml.parsers.DocumentBuilder 

javax.xml.parsers.DocumentBuilderFactory 

javax.xml.parsers.ParserConfigurationException;

javax.xml.transform

javax.xml.transform.TransformerFactory 

javax.xml.transform.Transformer 

javax.xml.transform.dom.DOMSource 

javax.xml.transform.stream.StreamResult 

javax.xml.transform.OutputKeys;

javax.xml.transform.TransformerFactoryConfigurationError;

javax.xml.transform.TransformerConfigurationException;

javax.xml.transform.TransformerException;

org.w3c.dom 

org.w3c.dom.Document;

org.w3c.dom.Element;

org.w3c.dom.Node;

org.w3c.dom.DOMException;

org.w3c.dom.NodeList;

org.xml.sax.SAXException;

sdk源码查看路径



2、Dom 创建 XML

Dom,借助 javax.xml.parsers.DocumentBuilder,可以创建 org.w3c.dom.Document 对象。

使用来自 DocumentBuilderFactory 的 DocumentBuilder 对象在 Android 设备上创建与解析 XML 文档。您将使用 XML pull 解析器的扩展来解析 XML 文档。

 

Code

 

  1. /** Dom方式,创建 XML  */  
  2. public String domCreateXML() {  
  3.     String xmlWriter = null;  
  4.       
  5.     Person []persons = new Person[3];       // 创建节点Person对象   
  6.     persons[0] = new Person(1"sunboy_2050""upload/201211090813112645.png" />
     


     


     

    3、Dom 解析 XML
     

    Dom方式,解析XML是创建XML的逆过程,主要用到了builder.parse(is)进行解析,然后通过Tag、NodeList、Element、childNotes等得到Element和Node属性或值。

    Code

     

    1. /** Dom方式,解析 XML  */  
    2. public String domResolveXML() {  
    3.     StringWriter xmlWriter = new StringWriter();  
    4.       
    5.     InputStream is= readXML(fileName);  
    6.     try {  
    7.         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
    8.         DocumentBuilder builder = factory.newDocumentBuilder();  
    9.         Document doc = builder.parse(is);  
    10.   
    11.         doc.getDocumentElement().normalize();  
    12.         NodeList nlRoot = doc.getElementsByTagName("root");  
    13.         Element eleRoot = (Element)nlRoot.item(0);  
    14.         String attrAuthor = eleRoot.getAttribute("author");  
    15.         String attrDate = eleRoot.getAttribute("date");  
    16.         xmlWriter.append("root").append("\t\t");  
    17.         xmlWriter.append(attrAuthor).append("\t");  
    18.         xmlWriter.append(attrDate).append("\n");  
    19.           
    20.         NodeList nlPerson = eleRoot.getElementsByTagName("person");  
    21.         int personsLen = nlPerson.getLength();  
    22.         Person []persons = new Person[personsLen];  
    23.         for(int i=0; i<personsLen; i++) {  
    24.             Element elePerson = (Element) nlPerson.item(i);     // person节点   
    25.             Person person = new Person();                       // 创建Person对象   
    26.               
    27.             NodeList nlId = elePerson.getElementsByTagName("id");  
    28.             Element eleId = (Element)nlId.item(0);  
    29.             String id = eleId.getChildNodes().item(0).getNodeValue();  
    30.             person.setId(Integer.parseInt(id));  
    31.               
    32.             NodeList nlName = elePerson.getElementsByTagName("name");  
    33.             Element eleName = (Element)nlName.item(0);  
    34.             String name = eleName.getChildNodes().item(0).getNodeValue();  
    35.             person.setName(name);  
    36.               
    37.             NodeList nlBlog = elePerson.getElementsByTagName("blog");  
    38.             Element eleBlog = (Element)nlBlog.item(0);  
    39.             String blog = eleBlog.getChildNodes().item(0).getNodeValue();  
    40.             person.setBlog(blog);  
    41.               
    42.     &n