返回顶部
首页 > 资讯 > 精选 >怎么用dom4j读取xml配置文件
  • 395
分享到

怎么用dom4j读取xml配置文件

2023-06-03 01:06:54 395人浏览 独家记忆
摘要

本篇内容主要讲解“怎么用dom4j读取xml配置文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用dom4j读取xml配置文件”吧!实现步骤以及源码:1、写xml文件读取类读取xml文档内

本篇内容主要讲解“怎么用dom4j读取xml配置文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用dom4j读取xml配置文件”吧!

实现步骤以及源码:
1、写xml文件读取类读取xml文档内容返回Document对象,此处作为公共xml操作类,用于读取和操作xml文档内容。

           点击(此处)折叠或打开

  1. package util;

  2. import java.io.File;

  3. import java.io.FileWriter;

  4. import java.io.IOException;

  5. import java.io.InputStream;

  6. import java.io.StringReader;

  7. import java.net.URL;

  8. import org.apache.log4j.Logger;

  9. import org.dom4j.Document;

  10. import org.dom4j.DocumentException;

  11. import org.dom4j.io.OutputFORMat;

  12. import org.dom4j.io.SAXReader;

  13. import org.dom4j.io.XMLWriter;

  14. public class XMLHelper {

  15.                    private static Logger logger=Logger.getLogger(XMLHelper.class);

  16.                    

  17.                    

  18.                    public static Document getDocument(File xmlFile){

  19.                        try {

  20.                            SAXReader saxReader=new SAXReader();

  21.                            return saxReader.read(xmlFile);

  22.                        } catch (DocumentException e) {

  23.                            logger.error("读取xml文件出错,返回nulll",e);

  24.                            return null;

  25.                        }

  26.                    }

  27.                    

  28.                    public static Document getDocument(String xmlString){

  29.                        try {

  30.                            if(xmlString==null||xmlString.equals(""))

  31.                                return null;

  32.                            SAXReader saxReader=new SAXReader();

  33.                            File file=new File(xmlString);

  34.                            return saxReader.read(file);

  35.                        } catch (DocumentException e) {

  36.                            logger.error("读取xml文件失败!",e);

  37.                            return null;

  38.                        }

  39.                    }

  40.                    

  41.                    public static Document getDocumentFromString(String xmlString){

  42.                        try {

  43.                            if(xmlString==null||xmlString.equals(""))

  44.                                return null;

  45.                            SAXReader saxReader=new SAXReader();

  46.                            return saxReader.read(new StringReader(xmlString));

  47.                        } catch (DocumentException e) {

  48.                            // TODO Auto-generated catch block

  49.                            e.printStackTrace();

  50.                        }

  51.                        return null;

  52.                    }

  53.                    

  54.                    

  55.                    public static boolean saveToFile(Document document,String filePath,OutputFormat outputFormat){

  56.                        XMLWriter writer;

  57.                        File file=new File(filePath);

  58.                        if(!file.exists()){

  59.                            try {

  60.                                file.createNewFile();

  61.                                if(!file.isDirectory())

  62.                                    return false;

  63.                            } catch (IOException e) {

  64.                                logger.error("创建文件'"+filePath+"'失败",e);

  65.                                return false;

  66.                            }

  67.                        }

  68.                        try {

  69.                            writer=new XMLWriter(new FileWriter(new File(filePath)));

  70.                            writer.write(document);

  71.                            writer.close();

  72.                            return true;

  73.                        } catch (IOException e) {

  74.                            logger.error("写文件"+filePath+"'出错",e);

  75.                        }

  76.                        return false;

  77.                        

  78.                    }

  79.                    

  80.                    public static boolean writeToXml(String filePath,Document doc){

  81.                        OutputFormat format=new OutputFormat();

  82.                        format.setEncoding("GBK");

  83.                        if(saveToFile(doc, filePath, format))

  84.                            return true;

  85.                        return false;

  86.                    }

  87.                    

  88.                    

  89.                    public static Document getDocument(Class cls,String XmlFile){

  90.                        Document document = null;

  91.                        ClassLoader loader = cls.getClassLoader();

  92.                        // 先从当前类所处路径的根目录中寻找属性文件

  93.                        File f;

  94.                        URL url = loader.getResource(XmlFile);

  95.                        if ( url != null )

  96.                        {

  97.                            f = new File(url.getPath());

  98.                         if ( f != null && f.exists() && f.isFile() )

  99.                         {

  100.                                document=XMLHelper.getDocument(f);

  101.                         }else{

  102.                                InputStream ins=null;

  103.                                try {

  104.                                    if(loader!=null){

  105.                                        ins=loader.getResourceAsStream(XmlFile);

  106.                                    }

  107.                                    if(ins!=null){

  108.                                        SAXReader saxReader=new SAXReader();

  109.                                            document=saxReader.read(ins);

  110.                                    }

  111.                                } catch (DocumentException e) {

  112.                                    logger.error("读取xml文件'"+XmlFile+"'失败",e);

  113.                                }finally{

  114.                                    try {

  115.                                        if(ins!=null){

  116.                                            ins.close();

  117.                                            ins=null;

  118.                                        }

  119.                                    } catch (IOException e) {

  120.                                        logger.error("",e);

  121.                                    }

  122.                                }

  123.                         }

  124.                        }

  125.                        return document;

  126.                        

  127.                    }

  128. }

写配置文件公共操作类,用于取配置文件中的配置信息
实现思路:对读取的xml的document对象进行解析,以键值对的形式存入map对象,取配置值时通过键值对(父级配置项目.子级配置项)的形式取出对应的配置信息

           点击(此处)折叠或打开

  1. package util;

  2. import java.util.HashMap;

  3. import java.util.Iterator;

  4. import java.util.List;

  5. import java.util.Map;

  6. import org.apache.log4j.Logger;

  7. import org.dom4j.Document;

  8. import org.dom4j.Element;

  9. public class Configuration {

  10.                    

  11.                    private static Logger logger=Logger.getLogger(Configuration.class);

  12.                    private static String CONFIG_FILE_NAME="conf/configuration.xml";

  13.                    

  14.                    private static Map itemMap=new HashMap();

  15.                    static{

  16.                        load_config();

  17.                    }

  18.                    private static void load_config(){

  19.                        try{

  20.                            Document document = XMLHelper.getDocument(Configuration.class, CONFIG_FILE_NAME);

  21.                            if(document!=null){

  22.                                Element element=document.getRootElement();

  23.                                List catList=element.elements("cateGory");

  24.                                for (Iterator catIter=catList.iterator();catIter.hasNext();) {

  25.                                    Element catElement=(Element) catIter.next();

  26.                                    String catName=catElement.attributeValue("name");

  27.                                    if(catName==null||catName.equals(""))

  28.                                        continue;

  29.                                    List itemList=catElement.elements("item");

  30.                                    for (Iterator itemIter=itemList.iterator();itemIter.hasNext();) {

  31.                                        Element itemElement=(Element) itemIter.next();

  32.                                        String itemName=itemElement.attributeValue("name");

  33.                                        String value=itemElement.attributeValue("value");

  34.                                        if (itemName==null||itemName.equals(""))

  35.                                            continue;

  36.                                        itemMap.put(catName+"."+itemName, value);

  37.                                    }

  38.                                }

  39.                            }

  40.                        }catch(Exception ex){

  41.                            logger.error("读取配置文件错误",ex);

  42.                        }

  43.                    }

  44.                    

  45.                    public static String getString(String name){

  46.                        String value=(String) itemMap.get(name);

  47.                        return value==null?"":value;

  48.                    }

  49.                    

  50.                    public static String getString(String name,String defaultValue){

  51.                        String value=(String) itemMap.get(name);

  52.                        return value==null||value.equals("")?defaultValue:value;

  53.                    }

  54.                    

  55.                    public static int getInt(String name){

  56.                        String value=(String) itemMap.get(name);

  57.                        try {

  58.                            return Integer.parseInt(value);

  59.                        } catch (Exception e) {

  60.                            logger.error("配置文件key["+name+"]配置错误,return 0",e);

  61.                            return 0;

  62.                        }

  63.                    }

  64.                    

  65.                    public static int getInt(String name,int defaultValue){

  66.                        String value=(String) itemMap.get(name);

  67.                        try {

  68.                            return Integer.parseInt(value);

  69.                        } catch (Exception e) {

  70.                            logger.error("配置文件key["+name+"]配置错误,返回默认值"+defaultValue,e);

  71.                            return defaultValue;

  72.                        }

  73.                    }

  74.                    

  75.                    public static boolean getBoolean(String name){

  76.                        String value=(String) itemMap.get(name);

  77.                        return Boolean.valueOf(value).booleanValue();

  78.                    }

  79.                    

  80.                    public static Double getDouble(String name,Double defaultValue) {

  81.                        String value=(String) itemMap.get(name);

  82.                        try {

  83.                            return Double.parseDouble(value);

  84.                        } catch (Exception e) {

  85.                            logger.error("配置文件key["+name+"]配置错误,返回默认值"+defaultValue,e);

  86.                            return defaultValue;

  87.                        }

  88.                    }

  89.                    

  90.                    public static Map getItems(){

  91.                        return itemMap;

  92.                    }

  93. }

以下内容为xml文件的内容模板以及使用样例

           点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="GBK"?>

  2. <system>

  3.                    <category name="test1" description="配置信息二">

  4.                        <item name="test1-1" value="1" description="" />

  5.                    </category>

  6.                    

  7.                    <category name="test2" description="配置信息二">

  8.                        <item name="test2-1" value="0" description="" />

  9.                        <item name="test2-2" value="12.4" description="" />

  10.                        <item name="test2-3" value="啊啊啊" description="" />

  11.                    </category>

  12. </system>

读取时使用Configuration.getString("test1.test1-1")获取 到配置值"1"
读取时使用Configuration.getString("test2.test1-3")获取 到配置值"啊啊啊"

到此,相信大家对“怎么用dom4j读取xml配置文件”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么用dom4j读取xml配置文件

本文链接: https://lsjlt.com/news/231861.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用dom4j读取xml配置文件
    本篇内容主要讲解“怎么用dom4j读取xml配置文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用dom4j读取xml配置文件”吧!实现步骤以及源码:1、写xml文件读取类读取xml文档内...
    99+
    2023-06-03
  • dom4j如何读取XML文件
    小编给大家分享一下dom4j如何读取XML文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!dom4j是一个Java的XML API,类似于jdom,用来读写XM...
    99+
    2023-05-30
    dom4j xml
  • java怎么读取xml配置文件
    在Java中,读取XML配置文件有多种方法,其中比较常用的是使用DOM解析器或者SAX解析器。1. 使用DOM解析器:```java...
    99+
    2023-09-11
    java
  • 怎么使用dom4j解析xml文件
    怎么使用dom4j解析xml文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。DOM4J解析特征:JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功...
    99+
    2023-05-31
    dom4j xml
  • 一文详解Spring是怎么读取配置Xml文件的
    目录Spring读取配置文件DocumentElementDocumentDefaultsDefinitionSpring读取配置文件Document 在XmlBeanDefinit...
    99+
    2024-04-02
  • Java中dom4j怎么读取配置文件实现抽象工厂+反射
    本篇内容主要讲解“Java中dom4j怎么读取配置文件实现抽象工厂+反射”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中dom4j怎么读取配置文件实现抽象工厂+反射”吧!在Java中也可...
    99+
    2023-06-17
  • C#怎么读取XML文件
    这篇文章主要讲解了“C#怎么读取XML文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#怎么读取XML文件”吧!用C#读取XML文件源程序代码,具体如下:using Syste...
    99+
    2023-06-17
  • VB.NET怎么读取XML文件
    这篇文章主要介绍“VB.NET怎么读取XML文件”,在日常操作中,相信很多人在VB.NET怎么读取XML文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”VB.NET怎么读取XML文件”的疑惑有所帮助!接下来...
    99+
    2023-06-17
  • java怎么读取xml文件
    在Java中,可以使用Java内置的XML解析器来读取XML文件。下面是一个简单的示例: import javax.xml.pars...
    99+
    2023-10-23
    java
  • 怎么使用Python读取xml文件
    本篇内容介绍了“怎么使用Python读取xml文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 什么是xml?xml即可扩展标记语言,它可...
    99+
    2023-07-06
  • vbscript如何读取xml格式的配置文件
    这篇文章主要为大家展示了“vbscript如何读取xml格式的配置文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vbscript如何读取xml格式的配置文件”这篇文章吧。复制代码 代码如下:...
    99+
    2023-06-08
  • 读取xml文件中的配置参数实例
    paras.xml文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/be...
    99+
    2023-05-31
    读取 xml 配置参数
  • springboot怎么读取配置文件
    在Spring Boot中,可以通过`@Value`注解、`Environment`接口、`@ConfigurationProper...
    99+
    2023-10-25
    springboot
  • Python怎么读取配置文件
    这篇文章主要讲解了“Python怎么读取配置文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么读取配置文件”吧!一、 yaml1、 准备支持的数据类型:字典、列表、字符串、布...
    99+
    2023-07-05
  • shell怎么读取配置文件
    本篇内容介绍了“shell怎么读取配置文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在编写启动脚本时,涉及到读取配置文件,特地记录下sh...
    99+
    2023-07-06
  • python读取xml文件
    什么是xml?xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。abc.xml<xml version="1.0" encoding="utf-8"> <catalo...
    99+
    2023-01-31
    文件 python xml
  • java怎么读取properties配置文件
    在Java中,可以使用`java.util.Properties`类来读取.properties配置文件。下面是一个简单的示例代码:...
    99+
    2023-09-20
    java
  • Android怎么读取并配置文件
    这篇文章主要讲解了“Android怎么读取并配置文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android怎么读取并配置文件”吧!配置properties文件先创建properties...
    99+
    2023-06-05
  • java怎么读取yml配置文件
    在Java中读取YAML配置文件可以使用SnakeYAML库。以下是一个简单的示例,演示了如何读取YAML配置文件:1. 首先,确保...
    99+
    2023-08-18
    java
  • C++中怎么使用TinyXML读取xml文件
    这篇文章主要介绍了C++中怎么使用TinyXML读取xml文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++中怎么使用TinyXML读取xml文件文章都会有所收获,下面我们一起来看看吧。前言TinyXML...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作