zoukankan      html  css  js  c++  java
  • JAVA读取XML文件

    解析XML的步骤如下:

      1.创建DocumentBuilder工厂
      2.创建DocumentBuilder对象
      3.DocumentBuilder对象的parse方法得到Document对象
      4.Document对象的getElementsByTagName得到NodeList集合
      5.通过getFirstChild和getNextSibling进行遍历
     

    用到的包:

    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import org.xml.sax.*;

    用到的对象:

    DocumentBuilderFactory:创建DocumentBuilder的抽象工厂

    DocumentBuilder:可以从 XML 获取一个 Document

    Document:提供供对文档数据的基本访问

    用到的方法:

    DocumentBuilder.parse(String)':将给定 URI 的内容解析为一个 XML 文档,并且返回一个新的 DOM Document对象

    Document.getElementsByTagName(String)':返回具有给定标记名称的所有 Element 的 NodeList

    Element.getAttribute(String)':通过名称获得属性值

    下面来解析一个XML文件

     1 import javax.xml.parsers.*;  
     2 import org.w3c.dom.*;  
     3 import org.xml.sax.*;  
     4   
     5 public class Test  
     6 {  
     7     public static void main(String[] args)  
     8     {  
     9         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  
    10         try  
    11         {  
    12             DocumentBuilder db = dbf.newDocumentBuilder();  
    13             Document doc = db.parse("pet2.xml");  
    14   
    15             NodeList dogList = doc.getElementsByTagName("dog");  
    16             System.out.println("共有" + dogList.getLength() + "个dog节点");  
    17             for (int i = 0; i < dogList.getLength(); i++)  
    18             {  
    19                 Node dog = dogList.item(i);  
    20                 Element elem = (Element) dog;  
    21                 System.out.println("id:" + elem.getAttribute("id"));  
    22                 for (Node node = dog.getFirstChild(); node != null; node = node.getNextSibling())  
    23                 {  
    24                     if (node.getNodeType() == Node.ELEMENT_NODE)  
    25                     {  
    26                         String name = node.getNodeName();  
    27                         String value = node.getFirstChild().getNodeValue();  
    28                         System.out.print(name + ":" + value + "	");  
    29                     }  
    30                 }  
    31                 System.out.println();  
    32             }  
    33         }  
    34         catch (Exception e)  
    35         {  
    36             e.printStackTrace();  
    37         }  
    38     }  
    39 }  

    XML文件

     1 <pets>  
     2     <dogs>  
     3         <dog id="1">            
     4             <name>YAYA</name>  
     5             <health>100</health>  
     6             <love>0</love>  
     7             <strain>酷酷的雪娜瑞</strain>  
     8         </dog>  
     9         <dog id="2">            
    10             <name>OUOU</name>  
    11             <health>90</health>  
    12             <love>15</love>  
    13             <strain>聪明的拉布拉多犬</strain>  
    14         </dog>  
    15     </dogs>  
    16     <penguins>  
    17         <penguin id="3">            
    18             <name>QQ</name>  
    19             <health>100</health>  
    20             <love>20</love>  
    21             <sex>Q仔</sex>             
    22         </penguin>          
    23     </penguins>  
    24 </pets>  
  • 相关阅读:
    使用wps跨ubuntu和windows编辑“.doc”文档。报错“编辑受限”,乱码,软件卡死,强制关闭
    【Python】断言功能Assertion
    【Python】hasattr() getattr() setattr() 使用方法详解
    【python】self & cls
    【Python】2.x与3​​.x版本的选用&版本间的区别
    【python】 del 的用法
    【python】参数中的*args和**kwargs
    解方程AX=b与矩阵分解:奇异值分解 特征值分解 QR分解 三角分解 Cholesky分解
    【python】dist-packages和site-packages的区别
    【python】脚本连续发送QQ邮件
  • 原文地址:https://www.cnblogs.com/wqj-blog/p/5977544.html
Copyright © 2011-2022 走看看