java中如何解析Xml配置文件呢?

欣喜 Java经验 发布时间:2025-01-10 17:10:41 阅读数:9883 1
下文笔者讲述java中解析xml配置文件的方法及示例分享,如下所示
解析XML配置的实现思路:
    解析w3c.dom中相关包,即可对xml进行解析
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.Nodelist;


public static Map<String, String> parseXml(String xmlPath) {
        /**
         * 以解析xml中的dataSource标签中的url username password属性值为例
         */
        String url = "";
        String username = "";
        String password = "";
        Map<String, String> map = new HashMap<String, String>();
        try {
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            /**
             * xmlPath为待解析xml文件的路径
             */
            Document document = db.parse(xmlPath);
            /**
             * 此处的dataSource为标签名,即获取该xml文件下所有的dataSource标签
             */
            NodeList nodeList = document.getElementsByTagName("dataSource");
            /**
             * 遍历标签(xml文件内dataSorce标签只有一个)
             */
            for (int i = 0; i < nodeList.getLength(); i++) {
                Node item = nodeList.item(i);
                /**
                 * 获取item标签的属性字段
                 */
                NamedNodeMap attributes = item.getAttributes();
                /**
                 * 遍历该标签的所有属性
                 */
                for (int j = 0; j < attributes.getLength(); j++) {
                    /**
                     * 此处就是获取指定属性的值
                     */
                    if ("dbUrl".equals(attributes.item(j).getNodeName())) {
                        url = attributes.item(j).getNodeValue();
                    } else if ("userName".equals(attributes.item(j).getNodeName())) {
                        username = attributes.item(j).getNodeValue();
                    } else if ("passWord".equals(attributes.item(j).getNodeName())) {
                        password = attributes.item(j).getNodeValue();
                    }
                }
            }
            map.put("url", url);
            map.put("username", username);
            map.put("password", password);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return map;
    }

xml的内容

<?xml version="1.0" encoding="gbk"?>
<config>
    <dataSource name="default" desc="最好的java学习网站" 
                 driverName="com.mysql.jdbc.Driver" 
                 dbUrl="jdbc:mysql://localhost:3306/icaipiao?useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true"
                 userName="root" passWord="123456"  
                 checkSql="select 1+2 FROM dual" interval="1"
                 startNum="2" maxNum="10"  maxCallNum="100000"
                 serverType="mysql" dbUrlBak="">
    </dataSource>
    <map file="C://test.txt"></map>
</config>
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202501/17365002888210.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者