zoukankan      html  css  js  c++  java
  • 用SAXReader解析xml文档【转】

    来源:http://blog.csdn.net/seayqrain/article/details/5024068

    使用SAXReader需要导入dom4j-full.jar包。

         dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。

         使用举例:

    1.    s.xml内容

    [xhtml] view plaincopy
     
    1. <?xml version="1.0" encoding="GB2312"?>  
    2. <data>  
    3.     <row queryDTO.enterpriseId="gfd" queryDTO.loginName="gdfg" queryDTO.state="0"/>  
    4. </data>  

    2.解析

    [c-sharp] view plaincopy
     
    1. import java.io.File;  
    2. import java.io.FileInputStream;  
    3. import java.io.FileNotFoundException;  
    4. import java.util.Iterator;  
    5. import java.util.List;  
    6. import org.dom4j.Document;  
    7. import org.dom4j.DocumentException;  
    8. import org.dom4j.Element;  
    9. import org.dom4j.io.SAXReader;  
    10. import org.dom4j.tree.AbstractAttribute;  
    11.   
    12. public class ReadXMLTest {  
    13.       
    14.     public static void main(String[] args){  
    15.         File xmlFile = new File("C:/s.xml");  
    16.         FileInputStream fis = null;  
    17.         try {  
    18.             fis = new FileInputStream(xmlFile);  
    19.         } catch (FileNotFoundException e) {  
    20.             e.printStackTrace();  
    21.             System.err.println("File is not exsit!");  
    22.         }  
    23.           
    24.         SAXReader saxReader = new SAXReader();  
    25.         List rowList = null;  
    26.         try {  
    27.             //生成文档对应实体  
    28.             Document doc = saxReader.read(fis);  
    29.             //获取指定路径下的元素列表,这里指获取所有的data下的row元素  
    30.             rowList = doc.selectNodes("//data/row");  
    31.         } catch (DocumentException e) {  
    32.             e.printStackTrace();  
    33.         }  
    34.           
    35.           
    36.         for(Iterator iter = rowList.iterator();iter.hasNext();){  
    37.             //获得具体的row元素   
    38.             Element element = (Element)iter.next();  
    39.             //获得row元素的所有属性列表  
    40.             List elementList = element.attributes();  
    41.             for(Iterator iter1 = elementList.iterator();iter1.hasNext();){  
    42.                 //将每个属性转化为一个抽象属性,然后获取其名字和值  
    43.                 AbstractAttribute aa = (AbstractAttribute)iter1.next();  
    44.                 System.out.println("Name:"+aa.getName()+";Value:"+aa.getValue());  
    45.             }  
    46.                             //输出:  
    47.                             //Name:queryDTO.enterpriseId;Value:gfd  
    48.                             //Name:queryDTO.loginName;Value:gdfg  
    49.                             //Name:queryDTO.state;Value:0  
    50.             System.out.println(element.getName());  
    51.                             //输出:  
    52.                             //row  
    53.             // 取得row元素的queryDTO.enterpriseId属性的值  
    54.             System.out.println(element.attributeValue("queryDTO.enterpriseId"));  
    55.                             //输出:  
    56.                             //gfd  
    57.             //如果element下有子元素,(类似width="**"),要想获得该子元素的值,可以用如下方法  
    58.             System.out.println(element.elementText("width"));//因为没有,所以输出为null。  
    59.         }  
    60.           
    61.     }  
    62. }  
  • 相关阅读:
    ASCII码对照表
    createPopup 超链接
    说说回车键触发表单提交的问题
    linux下配java环境的小结
    spring bind checkbox 传递值问题
    用Common validator为springMVC做验证时遇到的一个问题小记
    [转载]对android LinearLayout中layout_weight属性使用初探
    linux下tomcat启动正常,但用http://22.22.33.33:8080却访问不了,防火墙的设置问题
    Java 遍历Map时 删除元素
    ftp用户登录时不能进自己的目录,被拒绝登录的解决方法
  • 原文地址:https://www.cnblogs.com/yytlmm/p/4736709.html
Copyright © 2011-2022 走看看