zoukankan      html  css  js  c++  java
  • Java解析XML文件

     

     1 <?xml version=“1.0” encoding=“UTF-8”?>  
     2 <bookstore>  
     3     <book id=“1”>  
     4         <name>冰与火之歌</name>  
     5         <author>乔治马丁</author>  
     6         <year>2014</year>  
     7         <price>89</price>  
     8     </book>  
     9     <book id=“2”>  
    10         <name>安徒生童话</name>  
    11         <author>安徒生</author>  
    12         <year>2004</year>  
    13         <price>77</price>  
    14     </book>  
    15     <book id=“3”>  
    16         <name>think think think</name>  
    17         <author>aaa</author>  
    18         <year>1997</year>  
    19         <price>100</price>  
    20     </book>  
    21 </bookstore>  
     1 public class Book {  
     2       
     3     /** 
     4      * @author lune 
     5      */  
     6       
     7     private int id;  
     8     private String name;  
     9     private String author;  
    10     private int year;  
    11     private double price;  
    12       
    13     /** 
    14      * @return the id 
    15      */  
    16     public int getId() {  
    17         return id;  
    18     }  
    19     /** 
    20      * @param id the id to set 
    21      */  
    22     public void setId(int id) {  
    23         this.id = id;  
    24     }  
    25     /** 
    26      * @return the name 
    27      */  
    28     public String getName() {  
    29         return name;  
    30     }  
    31     /** 
    32      * @param name the name to set 
    33      */  
    34     public void setName(String name) {  
    35         this.name = name;  
    36     }  
    37     /** 
    38      * @return the author 
    39      */  
    40     public String getAuthor() {  
    41         return author;  
    42     }  
    43     /** 
    44      * @param author the author to set 
    45      */  
    46     public void setAuthor(String author) {  
    47         this.author = author;  
    48     }  
    49     /** 
    50      * @return the year 
    51      */  
    52     public int getYear() {  
    53         return year;  
    54     }  
    55     /** 
    56      * @param year the year to set 
    57      */  
    58     public void setYear(int year) {  
    59         this.year = year;  
    60     }  
    61     /** 
    62      * @return the price 
    63      */  
    64     public double getPrice() {  
    65         return price;  
    66     }  
    67     /** 
    68      * @param price the price to set 
    69      */  
    70     public void setPrice(double price) {  
    71         this.price = price;  
    72     }  
    73       
    74     @Override  
    75     public String toString() {  
    76         return “Book [id=” + id + “, name=” + name + “, author=” + author + “, year=” + year + “, price=” + price + “]”;  
    77     }  
    78           
    79 }  

    1.JDOM方式解析XML

     1 import java.io.FileInputStream;  
     2 import java.io.FileNotFoundException;  
     3 import java.io.IOException;  
     4 import java.util.ArrayList;  
     5 import java.util.List;  
     6   
     7 import org.jdom2.JDOMException;  
     8 import org.jdom2.input.SAXBuilder;  
     9   
    10 import com.lune.bean.Book;  
    11   
    12 import org.jdom2.*;  
    13   
    14 /** 
    15  * 用JDOM方式读取xml文件 
    16  * @author lune 
    17  */  
    18 public class ReadXMLByJDom {  
    19       
    20     private List<Book> books = null;  
    21     private Book book = null;  
    22       
    23     public List<Book> getBooks(String fileName){  
    24         SAXBuilder saxBuilder = new SAXBuilder();  
    25         try {  
    26             Document document = saxBuilder.build(new FileInputStream(fileName));  
    27             //获取根节点bookstore  
    28             Element rootElement = document.getRootElement();  
    29             //获取根节点的子节点,返回子节点的数组  
    30             List<Element> bookList = rootElement.getChildren();  
    31             books = new ArrayList<Book>();  
    32             for(Element bookElement : bookList){  
    33                 book = new Book();  
    34                 //获取bookElement的属性  
    35                 List<Attribute> bookAttributes = bookElement.getAttributes();  
    36                 for(Attribute attribute : bookAttributes){  
    37                     if(attribute.getName().equals(“id”)){  
    38                         String id = attribute.getValue(); //System.out.println(id);  
    39                         book.setId(Integer.parseInt(id));  
    40                     }  
    41                 }  
    42                 //获取bookElement的子节点  
    43                 List<Element> children = bookElement.getChildren();  
    44                 for(Element child : children){  
    45                     if(child.getName().equals(“name”)){  
    46                         String name = child.getValue();//System.out.println(name);  
    47                         book.setName(name);  
    48                     }else if(child.getName().equals(“author”)){  
    49                         String author = child.getValue();  
    50                         book.setAuthor(author);//System.out.println(author);  
    51                     }else if(child.getName().equals(“year”)){  
    52                         String year = child.getValue();  
    53                         book.setYear(Integer.parseInt(year));  
    54                     }else if(child.getName().equals(“price”)){  
    55                         String price = child.getValue();  
    56                         book.setPrice(Double.parseDouble(price));  
    57                     }  
    58                       
    59                 }  
    60                   
    61                 books.add(book);  
    62                 book = null;  
    63                   
    64             }  
    65               
    66         } catch (FileNotFoundException e) {  
    67               
    68             e.printStackTrace();  
    69         } catch (JDOMException e) {  
    70               
    71             e.printStackTrace();  
    72         } catch (IOException e) {  
    73               
    74             e.printStackTrace();  
    75         }  
    76           
    77         return books;  
    78           
    79     }  
    80   
    81       
    82     public static void main(String[] args) {  
    83         // TODO Auto-generated method stub  
    84         String fileName = ”src/res/books.xml”;  
    85         List<Book> books= new ReadXMLByJDom().getBooks(fileName);  
    86         for(Book book : books){  
    87             System.out.println(book);  
    88         }  
    89     }  
    90   
    91 }  

    2.DOM4j方式解析XML

     1 import java.io.File;  
     2 import java.util.ArrayList;  
     3 import java.util.Iterator;  
     4 import java.util.List;  
     5   
     6 import org.dom4j.Attribute;  
     7 import org.dom4j.Document;  
     8 import org.dom4j.DocumentException;  
     9 import org.dom4j.Element;  
    10 import org.dom4j.io.SAXReader;  
    11   
    12 import com.lune.bean.Book;  
    13   
    14 /** 
    15  * 用DOM4J方法读取xml文件 
    16  * @author lune 
    17  */  
    18 public class ReadXMLByDom4j {  
    19       
    20     private List<Book> bookList = null;  
    21     private Book book = null;  
    22       
    23     public List<Book> getBooks(File file){  
    24           
    25         SAXReader reader = new SAXReader();  
    26         try {  
    27             Document document = reader.read(file);  
    28             Element bookstore = document.getRootElement();  
    29             Iterator storeit = bookstore.elementIterator();  
    30               
    31             bookList = new ArrayList<Book>();  
    32             while(storeit.hasNext()){  
    33                   
    34                 book = new Book();  
    35                 Element bookElement = (Element) storeit.next();  
    36                 //遍历bookElement的属性  
    37                 List<Attribute> attributes = bookElement.attributes();  
    38                 for(Attribute attribute : attributes){  
    39                     if(attribute.getName().equals(“id”)){  
    40                         String id = attribute.getValue();//System.out.println(id);  
    41                         book.setId(Integer.parseInt(id));  
    42                     }  
    43                 }  
    44                   
    45                 Iterator bookit = bookElement.elementIterator();  
    46                 while(bookit.hasNext()){  
    47                     Element child = (Element) bookit.next();  
    48                     String nodeName = child.getName();  
    49                     if(nodeName.equals(“name”)){  
    50                         //System.out.println(child.getStringValue());  
    51                         String name = child.getStringValue();  
    52                         book.setName(name);  
    53                     }else if(nodeName.equals(“author”)){  
    54                         String author = child.getStringValue();  
    55                         book.setAuthor(author);  
    56                     }else if(nodeName.equals(“year”)){  
    57                         String year = child.getStringValue();  
    58                         book.setYear(Integer.parseInt(year));  
    59                     }else if(nodeName.equals(“price”)){  
    60                         String price = child.getStringValue();  
    61                         book.setPrice(Double.parseDouble(price));  
    62                     }  
    63                 }  
    64                 bookList.add(book);  
    65                 book = null;  
    66                   
    67             }  
    68         } catch (DocumentException e) {  
    69           
    70             e.printStackTrace();  
    71         }  
    72           
    73           
    74         return bookList;  
    75           
    76     }  
    77       
    78   
    79     /** 
    80      * @param args 
    81      */  
    82     public static void main(String[] args) {  
    83         // TODO Auto-generated method stub  
    84         File file = new File(“src/res/books.xml”);  
    85         List<Book> bookList = new ReadXMLByDom4j().getBooks(file);  
    86         for(Book book : bookList){  
    87             System.out.println(book);  
    88         }  
    89     }  
    90   
    91 }  

    转载自:https://blog.csdn.net/zflovecf/article/details/78908788#

  • 相关阅读:
    Linux基础命令——用户/权限相关命令
    Linux基础命令——文件相关命令
    Linux基础命令
    测试工程师在面试中可能会被问到的问题汇总
    robotframework全局变量问题
    postman+Newman+jenkins接口自动化测试持续集成
    RF标准库String的使用
    「网易官方」极客战记(codecombat)攻略-沙漠-最大公约数-tiresome-gcd
    「网易官方」极客战记(codecombat)攻略-沙漠-立方雷区-cubic-minefield
    「网易官方」极客战记(codecombat)攻略-沙漠-Z字行逃窜-zig-zag-and-zoom
  • 原文地址:https://www.cnblogs.com/qc-wh/p/11199646.html
Copyright © 2011-2022 走看看