Java操作XML文件(2)-读取XML文件

  1. package xml;    
  2.     
  3. import java.util.ArrayList;    
  4. import java.util.List;    
  5.     
  6. import javax.xml.parsers.DocumentBuilder;    
  7. import javax.xml.parsers.DocumentBuilderFactory;    
  8.     
  9. import org.w3c.dom.Document;    
  10. import org.w3c.dom.Element;    
  11. import org.w3c.dom.NodeList;    
  12.     
  13. public class XMLReader {    
  14.     private String fileName;    
  15.     
  16.     public XMLReader(String fileName) {    
  17.         this.fileName = fileName;    
  18.     }    
  19.     
  20.     public Element getRootElement() throws Exception {    
  21.         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();    
  22.         DocumentBuilder builder = factory.newDocumentBuilder();    
  23.         Document document = builder.parse(fileName);    
  24.         return document.getDocumentElement();    
  25.     }    
  26.     
  27.     public List<Element> getElementsByTagName(Element parent, String tagName) {    
  28.         List<Element> elements = new ArrayList<Element>();    
  29.         if (parent != null) {    
  30.             NodeList list = parent.getElementsByTagName(tagName);    
  31.             for (int i = 0; i < list.getLength(); i++) {    
  32.                 elements.add((Element) list.item(i));    
  33.             }    
  34.         }    
  35.         return elements;    
  36.     }    
  37.     
  38.     public Element getElementByTagName(Element parent, String tagName, int index) {    
  39.         List<Element> elements = getElementsByTagName(parent, tagName);    
  40.         if (index < 0 || index >= elements.size()) {    
  41.             return elements.get(0);    
  42.         } else {    
  43.             return elements.get(index);    
  44.         }    
  45.     }    
  46.     
  47.     public String getTextContent(Element e) {    
  48.         return e.getTextContent();    
  49.     }    
  50.     
  51.     public String getAttribute(Element e, String name) {    
  52.         return e.getAttribute(name);    
  53.     }    
  54.     
  55.     public static void main(String[] args) {    
  56.         try {    
  57.             XMLReader reader = new XMLReader("E:\\test.xml");    
  58.             Element root = reader.getRootElement();    
  59.             System.out    
  60.                     .println(reader.getElementsByTagName(root, "Book").size());    
  61.             Element book = reader.getElementByTagName(root, "Book"0);    
  62.             Element price = reader.getElementByTagName(book, "Price"0);    
  63.             System.out.println(price.getTextContent());    
  64.             Element title = reader.getElementByTagName(book, "Title"0);    
  65.             System.out.println(reader.getTextContent(title));    
  66.             System.out.println(reader.getAttribute(title, "Auth"));    
  67.         } catch (Exception e) {    
  68.             e.printStackTrace();    
  69.         }    
  70.     
  71.     }    
  72. }   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值