sax解析xml实例

 
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- sax_xml_test -->
  3. <module>
  4.     <name>nameFileld</name>
  5.     <template name="template_name_attribute"/>
  6.     <action selectId="degreeSelect">
  7.         <queryAction>queryAction</queryAction>
  8.         <inputAction>inputAction</inputAction>
  9.         <deleteAction>deleteAction</deleteAction>
  10.     </action>
  11.     <list>
  12.         <header>
  13.             <headerCol tableCol="degree_id" label="学历代码" width="15%" height="21"/>
  14.             <headerCol tableCol="degree_name" label="学历代码名称"/>
  15.             <headerCol tableCol="is_used" label="是否有效" width="10%"/>
  16.             <headerCol tableCol="sort_no" label="排序号"  width="10%"/>
  17.         </header>
  18.     </list>
  19. </module>
  20. /**
  21. *描述:用SAX方式解析XML文件
  22. *作者:。。。
  23. *时间:2008年08月
  24. *地点:。。。
  25. */
  26. 应用(类与xml文件放在同一个文件目录下):
  27. public class test
  28. {
  29.     //XML文档对象
  30.     private Document doc;
  31.      /**
  32.      * 加载指定的XML文档
  33.      */
  34.     private void loadXMLDoc(String moduleId){
  35.         
  36.         InputStream inStream = null;
  37.         try{            
  38.             //读取配置文件的输入流,通过类路径获取
  39.             inStream = getClass().getResourceAsStream("sax_xml_test.xml");
  40.             
  41.             //使用dom4j软件包,利用sax的方式读取xml文件
  42.             SAXReader reader = new SAXReader();
  43.             doc = reader.read(inStream);
  44.         }
  45.         catch(Exception _ex){
  46.             _ex.printStackTrace();
  47.         }
  48.         finally {
  49.             try {
  50.                 inStream.close();
  51.             }
  52.             catch(Exception _ex) {
  53.                 
  54.             }
  55.         }
  56.     }
  57.      /**
  58.      * 处理业务逻辑
  59.      */
  60.     public void processLogic()
  61.             throws Exception
  62.     {
  63.         //名字,即name子结点,得到值"nameFileld"
  64.         String name = ((Element)doc.selectSingleNode("/module/name")).getText();
  65.         //获取页面模板的路径,即得到值"template_name_attribute"
  66.         String template = ((Element)doc.selectSingleNode("/module/template")).attributeValue("name");
  67.         //得到值"queryAction"
  68.         String queryAction = ((Element)doc.selectSingleNode("/module/action/queryAction")).getText();
  69.         //得到值"inputAction"
  70.         String inputAction = ((Element)doc.selectSingleNode("/module/action/inputAction")).getText();
  71.         //得到值"deleteAction"
  72.         String deleteAction = ((Element)doc.selectSingleNode("/module/action/deleteAction")).getText();
  73.         //得到值"selectId"
  74.         String selectId = ((Element)doc.selectSingleNode("/module/action")).attributeValue("selectId");
  75.         //从xml中读取每个headerCol的设置
  76.         List<Element> headerCols = doc.selectNodes("/module/list/header/headerCol");
  77.         for(Element element: headerCols)
  78.         {
  79.             String name = element.attributeValue("tableCol");
  80.             String width = element.attributeValue("width");
  81.             String height = element.attributeValue("height");
  82.             String label = element.attributeValue("label");
  83.         }
  84.     }
  85. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值