zoukankan      html  css  js  c++  java
  • 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     }
  • 相关阅读:
    2018/12/05 PAT刷题 L1-014 简单题 Java
    2018/12/05 PAT刷题 L1-013 计算阶乘和 Java
    2018/12/04 PAT刷题 L1-012 计算指数 java
    L1-011 A-B Java 部分解
    2018/12/04 PAT再思考 L1-010 比较大小
    2018/12/04 PAT刷题 L1-009 N个数求和 java
    2018/12/04 PAT刷题 L1-008 求整数段和 java
    2018/12/04 PAT刷题 L1-007 念数字 java
    建造者模式
    外观模式
  • 原文地址:https://www.cnblogs.com/renzimu/p/4538200.html
Copyright © 2011-2022 走看看