• Android 开发工具类 20_DOMPersonService


    xml 文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <persons>
     3     <person id = "23">
     4         <name>NEwii</name>
     5         <age>21</age>
     6     </person>
     7     <person id = "20">
     8         <name>WiiWill</name>
     9         <age>25</age>
    10     </person>
    11 </persons>

     DOM 格式

     DOM 解析 XML 

     1 import java.io.InputStream;
     2 import java.util.ArrayList;
     3 import java.util.List;
     4 
     5 import javax.xml.parsers.DocumentBuilder;
     6 import javax.xml.parsers.DocumentBuilderFactory;
     7 
     8 import org.w3c.dom.Document;
     9 import org.w3c.dom.Element;
    10 import org.w3c.dom.Node;
    11 import org.w3c.dom.NodeList;
    12 
    13 import com.wangjialin.domain.Person;
    14 
    15 public class DOMPersonService {
    16     
    17     public static List<Person> getPersons(InputStream inStream) throws Exception{
    18         
    19         List<Person> persons = new ArrayList<Person>();
    20         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    21         DocumentBuilder builder = factory.newDocumentBuilder();
    22         Document document = builder.parse(inStream);
    23         Element root = document.getDocumentElement();
    24         NodeList personNodes = root.getElementsByTagName("person");
    25         
    26         for(int i=0; i < personNodes.getLength() ; i++){
    27             
    28             Element personElement = (Element)personNodes.item(i);
    29             int id = new Integer(personElement.getAttribute("id"));
    30             Person person = new Person();
    31             person.setId(id);
    32             NodeList childNodes = personElement.getChildNodes();
    33             
    34             for(int y=0; y < childNodes.getLength(); y++){
    35                 if(childNodes.item(y).getNodeType() == Node.ELEMENT_NODE){
    36                     if("name".equals(childNodes.item(y).getNodeName())){
    37                         String name = childNodes.item(y).getFirstChild().getNodeValue();
    38                         person.setName(name);
    39                     }else if("age".equals(childNodes.item(y).getNodeName())){
    40                         String age = childNodes.item(y).getFirstChild().getNodeValue();
    41                         person.setAge(new Short(age));
    42                     }
    43                 }
    44             }
    45             persons.add(person);
    46         }
    47         inStream.close();
    48         return persons;
    49     }
    50 }

    Person.java

     1 public class Person {
     2     
     3     private Integer id;
     4     private String name;
     5     private Short age;
     6 
     7     public Person(){}
     8     
     9     public Person(Integer id, String name, Short age) {
    10         this.id = id;
    11         this.name = name;
    12         this.age = age;
    13     }
    14     
    15     public Person(String name, Short age) {
    16         this.name = name;
    17         this.age = age;
    18     }
    19     
    20     public Integer getId() {
    21         return id;
    22     }
    23 
    24     public void setId(Integer id) {
    25         this.id = id;
    26     }
    27 
    28     public String getName() {
    29         return name;
    30     }
    31 
    32     public void setName(String name) {
    33         this.name = name;
    34     }
    35 
    36     public Short getAge() {
    37         return age;
    38     }
    39 
    40     public void setAge(Short age) {
    41         this.age = age;
    42     }
    43 
    44     @Override
    45     public String toString() {
    46         return "id=" + id + ",name=" + name+ ",age=" + age;
    47     }
    48     
    49 
    50 }

     JUnit 测试

    1 public void testDOMgetPersons() throws Throwable{
    2         
    3         InputStream inStream = this.getClass().getClassLoader().getResourceAsStream("wangjialin.xml");
    4         List<Person> persons = DOMPersonService.getPersons(inStream);
    5         
    6         for(Person person : persons){
    7             Log.i(TAG, person.toString());
    8         }
    9     }
  • 相关阅读:
    shell进行mysql统计
    java I/O总结
    Hbase源码分析:Hbase UI中Requests Per Second的具体含义
    ASP.NET Session State Overview
    What is an ISAPI Extension?
    innerxml and outerxml
    postman
    FileZilla文件下载的目录
    how to use webpart container in kentico
    Consider using EXISTS instead of IN
  • 原文地址:https://www.cnblogs.com/renzimu/p/4538200.html
Copyright © 2020-2023  润新知