`

读取xml,返回对象

    博客分类:
  • java
 
阅读更多

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.howbuy.core.util.StringUtil;
import com.howbuy.trade.dto.CorpMerchantDto;

/**
 * @ClassName: CorpMerchantUtil
 * @Description: 合作商户信息操作工具类
 * @date 2013-4-27 上午10:46:48
 *
 */
public class CorpMerchantUtil {
    /**
     * logger
     */
    private final Logger logger = LoggerFactory.getLogger(this.getClass());
   
    /**
     * instance
     */
    private static CorpMerchantUtil instance;
    private final static String fileName = "corpMerchant.xml";
    private static Map<String, CorpMerchantDto> corpMerchantsMap;
    private static String currentVersion = "";
   
    private CorpMerchantUtil() {
        loadCorpMerchants();
    }
   
    /**
     * getInstance
     * @return CorpMerchantUtil
     */
    public static CorpMerchantUtil getInstance() {
        if(null == instance || isUpdateCorpMerchants()) {
            instance = new CorpMerchantUtil();
        }
        return instance;
    }
   
    /**
     * getCorpMerchantsMap
     * @return Map<String, CorpMerchantDto>
     */
    public Map<String, CorpMerchantDto> getCorpMerchantsMap() {
        return corpMerchantsMap;
    }
   
    /**
     * 是否存在指定商户代码
     * @param corpID 商户代码
     * @return boolean true:是,false:否
     */
    public boolean isExistsCorpMerchantByCorpID(String corpID) {
        if(StringUtil.isEmpty(corpID)) {
            return false;
        }
        return corpMerchantsMap.containsKey(corpID);
    }
   
    /**
     * 根据商户代码获取商户信息
     * @param corpID 商户代码
     * @return CorpMerchantDto 商户信息
     */
    public CorpMerchantDto getCorpMerchantByCorpID(String corpID) {
        if(StringUtil.isEmpty(corpID) || !corpMerchantsMap.containsKey(corpID)) {
            return null;
        }
        return corpMerchantsMap.get(corpID);
    }
   
    /**
     * 是否需要更新商户列表
     * @return boolean
     */
    private static boolean isUpdateCorpMerchants() {
        boolean isUpdate = false;
       
        SAXReader saxReader = new SAXReader();
        Document document;
        try {
            document = saxReader.read(Thread.currentThread().getContextClassLoader().getResource(fileName));

            Element root = document.getRootElement();
            Attribute attribute = root.attribute("version");
            if(null != attribute) {
                String version = attribute.getValue();
                if(!currentVersion.equals(version)) {
                    isUpdate = true;
                }
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
       
        return isUpdate;
    }
   
    /**
     * 加载查询条件内容
     */
    private void loadCorpMerchants() {
        logger.info("******************** Load cooperation merchants*********************");
        corpMerchantsMap = new HashMap<String, CorpMerchantDto>();
       
        SAXReader saxReader = new SAXReader();
        Document document;
        try {
            document = saxReader.read(Thread.currentThread().getContextClassLoader().getResource(fileName));

            Element root = document.getRootElement();
            Attribute attribute = root.attribute("version");
            String version = attribute.getValue();
            currentVersion = version;
            for(Iterator iter = root.elementIterator(); iter.hasNext();) {
                Element element = (Element)iter.next();
                CorpMerchantDto corpMerchantDto = new CorpMerchantDto();
                Attribute attributeOfCorpID = element.attribute("corpID");
                Attribute attributeOfCoopID = element.attribute("coopID");
                Attribute attributeOfActID = element.attribute("actID");
                corpMerchantDto.setCorpID(attributeOfCorpID.getValue());
                corpMerchantDto.setCoopID(attributeOfCoopID.getValue());
                corpMerchantDto.setActID(attributeOfActID.getValue());
                corpMerchantDto.setMerchantName(element.getText());
               
                corpMerchantsMap.put(attributeOfCorpID.getValue(), corpMerchantDto);
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }
   
    /**
     * test
     * @param args
     * void
     */
    public static void main(String[] args) {
        Map<String, CorpMerchantDto> map = CorpMerchantUtil.getInstance().getCorpMerchantsMap();
        for(Entry<String, CorpMerchantDto> entry : map.entrySet()) {
            System.out.println("corpID = " + entry.getValue().getCorpID());
            System.out.println("merchantName = " + entry.getValue().getMerchantName());
        }
    }
}

xml

<?xml version="1.0" encoding="UTF-8"?>
<merchants version="1.0">
    <merchant corpID="000001" coopID="W20130701" actID="HD0001">盈盈理财</merchant>
</merchants>

 

public class CorpMerchantDto implements Serializable {
    /**
     * @Fields serialVersionUID: 2005927276049639976L
     */
    private static final long serialVersionUID = 2005927276049639976L;
   
    /**
     * 商户代码
     */
    private String corpID;
   
    /**
     * 商户名称
     */
    private String merchantName;
   
    /**
     * 合作代码
     */
    private String coopID;
   
    /**
     * 活动代码
     */
    private String actID;

    /**
     * @return the corpID
     */
    public String getCorpID() {
        return corpID;
    }

    /**
     * @param corpID the corpID to set
     */
    public void setCorpID(String corpID) {
        this.corpID = corpID;
    }

    /**
     * @return the merchantName
     */
    public String getMerchantName() {
        return merchantName;
    }

    /**
     * @param merchantName the merchantName to set
     */
    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    /**
     * @return the coopID
     */
    public String getCoopID() {
        return coopID;
    }

    /**
     * @param coopID the coopID to set
     */
    public void setCoopID(String coopID) {
        this.coopID = coopID;
    }

    /**
     * @return the actID
     */
    public String getActID() {
        return actID;
    }

    /**
     * @param actID the actID to set
     */
    public void setActID(String actID) {
        this.actID = actID;
    }

 

分享到:
评论

相关推荐

    xml.zip_matlab读取xml文件实例_xml文件读取

    `xmlread`用于读取XML文件并将其转换为一个文档对象模型(DOM)树,而`xmlwrite`则可以将DOM树写回到XML文件。DOM树是一种数据结构,它代表了XML文件的整个内容,允许我们遍历和修改文件的各个部分。 例如,假设...

    js读取xml文件并获取文件内容

    ### JS读取XML文件并获取文件内容 #### 知识点概述 在现代Web开发中,JavaScript(简称JS)常被用于处理各种数据格式,包括XML。XML(可扩展标记语言)是一种常用的标记语言,主要用于结构化数据的存储与传输。...

    jquery读取xml

    本篇文章将深入探讨如何使用jQuery来读取XML,并通过实例详细解析相关知识点。 一、jQuery.parseXML()函数 在jQuery中,首先我们需要将XML字符串转换为XML DOM对象。这可以通过使用`jQuery.parseXML()`函数来实现...

    Asp.net读取返回XML页面的信息

    在Asp.net中,读取并处理XML页面信息...通过以上知识点,开发者可以在Asp.net中轻松地从URL读取XML页面,并处理其中的数据,实现与远程服务的数据交换。理解并熟练运用这些技术对于构建功能丰富的Web应用程序至关重要。

    jsp 读取XML代码

    以下是如何在JSP中读取XML文件的详细步骤,结合描述中的"xmlSearch"文件名,我们可以推测这是一个搜索功能的实现。 首先,我们需要在JSP页面中引入处理XML的库,通常是Java API for XML Processing (JAXP),它包含...

    C++读取XML文件

    本教程将深入探讨如何使用TinyXML解析器在C++中读取XML文件。 TinyXML是一个小型、轻量级的开源库,设计用于在C++中解析XML文档。它的主要优点在于简单易用,同时保持了良好的性能。下面我们将详细介绍如何使用Tiny...

    matlab读取XML,XML转换为matlab

    读取XML - `xmlread`: 这个函数用于从XML文件中读取数据,返回一个XML DOM(Document Object Model)对象。DOM是一种树形结构,表示XML文档的所有元素和属性。 - `xmlstruct`: 该函数将DOM对象转换为Matlab结构体,...

    c#读取XML文件

    本篇文章将详细介绍如何使用C#来读取XML文件,并通过具体的案例进行演示。 首先,我们要了解XML文件的基本结构。如提供的示例所示,XML文件由一系列的元素组成,每个元素可能包含子元素和属性。在给定的XML文件中,...

    C中读取XML文件

    在本篇文章中,我们将深入探讨如何在C#中读取XML文件,解析其内容,并进行必要的数据操作。 ### C#中读取XML文件 #### 1. 获取XML DataSet 在C#中,`DataSet`是一种用于存储从数据库或XML文件中获取的数据的内存...

    利用C++读取XML文件

    读取XML文件是许多软件项目中的常见需求,例如配置文件、数据存储或网络通信。TinyXML库是一个小巧且易于使用的C++库,专门设计用于解析和操作XML文档。下面将详细介绍如何利用C++和TinyXML库来读取XML文件。 1. **...

    JS读取XML实例.zip

    总的来说,通过JavaScript读取XML文件需要异步加载XML数据,然后使用DOM解析XML字符串。在实际项目中,还可以考虑使用jQuery、axios等库来简化XML处理。同时,理解XML和DOM的概念对于JavaScript开发者来说是非常重要...

    xpath读取XML节点

    2. **读取XML文件**:使用`SAXBuilder`类解析XML文件,创建一个`Document`对象,这是JDOM中的XML文档模型。 ```java File xmlFile = new File("path_to_your_xml_file"); SAXBuilder builder = new SAXBuilder(); ...

    MATLAB读取XML

    首先,MATLAB提供了一个名为`xmlread`的函数,它用于读取XML文件并返回一个XMLDocument对象。在提供的代码中,`xmlread`函数的输入参数是XML文件的路径,例如`infilename`。如果文件读取成功,`xmlread`会返回一个...

    python读取xml文件.doc

    Python 读取 XML 文件 Python 读取 XML 文件是 Python 编程中的一种常见...使用 Python 读取 XML 文件可以使用 xml.dom.minidom 模块,並使用 parse() 函数打开 XML 文件,然后使用文档对象来访问 XML 文件的元素。

    tinyxml2解析XML文件读取数据

    4. **读取XML数据** - 对于元素,可以使用`XMLElement::Value()`获取元素的文本内容。 - 对于属性,可以使用`XMLAttribute::Value()`获取属性值。 - 对于文本节点,使用`XMLText::Value()`获取文本内容。 5. **...

    JDOM读取XML,并且创建XML

    2. 使用`SAXBuilder`的`build`方法读取XML文件,返回一个`Document`对象。 3. 通过`Document`对象访问XML文档的元素和属性。 示例代码如下: ```java import org.jdom2.*; import org.jdom2.input.SAXBuilder; ...

    Ajax读取XML文件实例

    这个实例将讲解如何使用Ajax来读取XML文件,从而实现无刷新的效果,提高用户体验。 首先,我们需要了解XML(Extensible Markup Language)。XML是一种用于标记数据的语言,它结构清晰、易于解析,并且可以跨平台、...

    网页读取xml文档并分页

    本篇文章将详细讲解如何在Web环境中读取XML文档,并实现分页显示数据的方法。 首先,我们需要理解XML的基本概念。XML是一种自描述性的语言,它的结构清晰,易于机器解析和人类阅读。XML文档由元素、属性、文本内容...

    C#读取XML文件.pdf

    在标题中提到的“C#读取XML文件”是本文档的中心内容。描述部分重复了标题,没有提供额外的信息。标签部分为空,没有提供辅助分类或关键词。从给定的部分内容中,可以总结出一系列关于使用C#语言读取XML文件的技术点...

    使用Python类似pandas的方式读取xml文件的例子_pandas读取数据库

    其中,`parse()`函数解析XML文件并返回一个ElementTree对象,`getroot()`方法返回XML文档的根元素。 3. **创建数据结构**: 我们需要定义一个函数,将XML元素转换为字典,以便于pandas处理。 ```python def xml...

Global site tag (gtag.js) - Google Analytics