`

SAXReader

    博客分类:
  • XML
阅读更多
说明:SAXReader主要用于解析XML文件,是当前比较流行的xml解决方案.
代码以基础类函数的形式展现如下:
	package com.dc.framework.taglib;   
	import java.io.FileInputStream;   
	import java.io.FileNotFoundException;   
	import java.util.HashMap;   
	import java.util.Iterator;   
	import java.util.List;   
	import java.util.Map;   
	import javax.servlet.ServletRequest;   
	import javax.servlet.http.HttpServletRequest;   
	import javax.servlet.jsp.JspTagException;   
	import javax.servlet.jsp.tagext.TagSupport;   
	import org.apache.commons.lang.StringUtils;   
	import org.dom4j.Document;   
	import org.dom4j.DocumentException;   
	import org.dom4j.Element;   
	import org.dom4j.io.SAXReader;   
	    
	  
	//自定义标签处理类   
	public class ReadUploadFile {   
	    // 配置文件的路径   
	    static String uploadCfgFile = "WEB-INF/conf/uploadfile.xml";    
	    //文档对象实体   
	    Document uploadDocument = null;   
	    //结果存储体   
	    Map uploadMap = new HashMap();   
	       
	 /**  
	  * @param request  
	  * @return  
	  * 获取配置文件绝对路径  
	  */  
	 private String getuploadCfgFile(ServletRequest request) {   
	      return ((HttpServletRequest) request).getSession().getServletContext().getRealPath(uploadCfgFile);   
	 }   
	    
	 /**  
	  * @param request  
	  * @return  
	  * 初始化配置文件  
	  */  
	 private Document inituploadCfgDocument(ServletRequest request) {   
	      SAXReader saxReader = new SAXReader();   
	      try {   
	          //得到指定文件以流的形式对文件进行序列化   
	          FileInputStream fis = new FileInputStream(getuploadCfgFile(request));   
	          uploadDocument = saxReader.read(fis);   
	      }   
	      catch (DocumentException e) {   
	          e.printStackTrace();   
	      }   
	      catch(FileNotFoundException fnfe){   
	          fnfe.printStackTrace();   
	      }   
	      return uploadDocument;   
	 }   
	    
	 /**  
	  * 获取配置文件  
	  *  
	  * @param request  
	  * @return  
	  */  
	 private Document getuploadCfgDocument(ServletRequest request) {   
	      if (this.uploadDocument == null) {   
	          this.uploadDocument = inituploadCfgDocument(request);   
	      }   
	      return this.uploadDocument;   
	 }   
	  
	 /**  
	  * @param request  
	  * @return  
	  * 获取某个指定preparents的配置属性  
	  */  
	 public Map getuploadMap(ServletRequest request) {   
	     //xml中的访问路径,说明欲处理XML文件的根元素是fileaction-configuration   
	     String xPath = "//fileaction-configuration/preparents";   
	     //获取按照指定搜索路径得到的元素列表,这里指获取所有的fileaction-configuration下的preparents元素   
	     List result = getuploadCfgDocument(request).selectNodes(xPath);   
	     //属性和指定子元素的存储体   
	     Map uploadMap = new HashMap();   
	     //遍历所得元素   
	     Iterator iter = result.iterator();   
	     while (iter.hasNext()) {      
	         //获得具体的preparents元素   
	         Element preparents = (Element) iter.next();   
	         // 取得preparents元素的id属性的值   
	         String id2 = preparents.attributeValue("id");   
	         // 取得preparents元素下子元素tabname的值,并与id2配对存储   
	         uploadMap.put(id2,   
	            StringUtils.trim(preparents.elementText("tabname")));      
	      }   
	      return uploadMap;   
	}   
	}


分享到:
评论

相关推荐

    SAXReader所需jar包.zip

    标题"\"SAXReader所需jar包.zip\"\"提及的核心是SAXReader,这是一个基于SAX解析器的Java库,由dom4j项目提供。SAXReader允许开发者以流式处理方式读取XML文档,这种方式对内存使用非常友好,特别适合处理大型XML...

    使用SAXReader需要两个jar包

    在Java编程中,解析XML文档是一项常见的任务,而SAXReader是dom4j库中的一个类,用于以SAX(Simple API for XML)方式读取XML文档。SAX是一种事件驱动的XML解析器,它以流式处理XML数据,节省内存资源,特别适合处理...

    Dom4j(SaxReader )开发详解

    SaxReader是Dom4j库中的一个核心组件,用于读取XML文档,它基于事件驱动的SAX解析器,具有高效、内存占用小的特点。本文将深入探讨Dom4j与SaxReader的开发使用,帮助开发者更好地理解和运用这两个工具。 首先,理解...

    SAXreader需要的jar包.zip

    在Java环境中,SAXReader是JDOM库提供的一个类,它允许开发者通过SAX接口来读取XML文档。 然而,SAXReader本身并不包含所有解析XML所需的所有依赖。在这个“SAXreader需要的jar包.zip”压缩文件中,包含了两个重要...

    Dom4J-SaxReader 的用法

    在本文中,我们将深入探讨SaxReader在DOM4J中的使用方法。 1. **创建SAXReader对象** 创建SAXReader对象是解析XML文档的第一步。在提供的代码片段中,`createSAXReader`方法被用来实例化SAXReader。通过设置各种...

    用SAXReader解析xml文档

    2. 创建SAXReader对象:`SAXReader reader = new SAXReader();` 3. 设置解析器属性:可以设置是否忽略XML声明、是否忽略空白节点等,如`reader.setIgnoreWhitespace(true);` 4. 解析XML文件:`Document document =...

    saxreader 解析 XML

    在这个场景中,我们提到的是使用SAXReader来解析XML。SAX(Simple API for XML)是一种事件驱动的解析器,它不将整个XML文档加载到内存中,而是逐行读取,这使得SAX在处理大型XML文件时比DOM(Document Object Model...

    SAXReader用法.docx

    本文将详细介绍如何使用Java的SAXReader以及一个辅助的静态方法来获取环境变量,该方法适用于Windows操作系统。 首先,SAXReader是Java API for XML Processing (JAXP)的一部分,用于解析XML文档。它是一种事件驱动...

    SAXReader用法.pdf

    在Java编程中,SAXReader是一种用于解析XML文档的API,它是Java标准库中的JAXB(Java Architecture for XML Binding)的一部分。SAX(Simple API for XML)是一种事件驱动的XML解析模型,与DOM(Document Object ...

    Xml.zip_JAVA读取xml_XML读取_java_saxreader

    本教程将重点介绍如何使用SAXReader在Java中读取XML文件。 SAXReader是JDOM库中的一个类,它实现了SAX解析器接口,适用于处理大型XML文档,因为它不会将整个XML文档加载到内存中,而是采用事件驱动的方式,逐个处理...

    looly#hutool-site#流方式读取Excel2003-Excel03SaxReader1

    介绍在标准的ExcelReader中,如果数据量较大,读取Excel会非常缓慢,并有可能造成内存溢出。因此针对大数据量的Excel,Hutool封装了event

    SAXReader.zip

    《SAXReader解析技术详解及应用》 在Java编程领域,XML(eXtensible Markup Language)作为一种数据交换格式,广泛应用于数据存储、配置文件、Web服务等多种场景。处理XML文档时,有多种解析方式,其中SAX(Simple ...

    DOM4J解析XML时DTD路径问题

    SAXReader saxReader = new SAXReader(); saxReader.setEntityResolver(new MyEntityResolver()); ``` 3. **读取XML文档**:最后,使用配置好的`SAXReader`对象读取XML文档。 ```java public static Document...

    详细解析SAXReader解析器的作用与用法中的使用的xml文件

    详细解析SAXReader解析器的作用与用法中的使用的xml文件

    dom4j 使用简介 代码 程序

    在描述部分提供的Java代码片段中,演示了如何使用dom4j库中的SAXReader来读取一个XML文件并返回一个Document对象。这一过程首先创建了一个SAXReader实例,然后通过调用它的read方法来解析XML文件,最终得到一个...

    sax解析util

    SAXReader reader = new SAXReader(); Document document = reader.read(conf); Element root = document.getRootElement(); Element chird = root.element(arg); if (chird != null) result = ...

    使用dom4j.doc

    SAXReader reader = new SAXReader(); Document document = reader.read(new File("input.xml")); ``` - **解析XML文本**:`DocumentHelper.parseText`方法用于将XML字符串解析为`Document`对象。 ```java ...

    day023-xml解析笔记和代码.rar

    SAXReader reader = new SAXReader(); 2.设置命名空间 reader.getDocumentFactory().setXPathNamespaceURIs(map); 3. SAXReader对象调用read方法,将当前XML文件,转换为Document对象 ...

    解析XML特殊字符方法

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在互联网上,尤其是在数据交换、配置文件和文档存储等领域。在XML文档中,有些字符是具有特殊含义的,例如 `、`>` 和 `&` 等,它们分别用于...

    Dm4J操作xml文件.rar

    5. **SAXReader的使用**:SAX(Simple API for XML)是一种事件驱动的XML解析方式,它不会一次性加载整个XML文档到内存,而是逐行解析,因此适用于处理大型XML文件。Dm4J中可能采用了SAXReader来实现高效的XML读取。...

Global site tag (gtag.js) - Google Analytics