java中读出xml中里面配置的属性

一、xml属性文件书写

<?xml version="1.0" encoding="UTF-8"?>
<root>

	<mapping id="bpm" label="">
		<!--bpm地址-->
		<item key="BMPURL" value="http://127.0.0.1/BpmSite/" desc_en=""/>
		<item key="a01" value="3dac215391784225a29799cbb8db020b" desc_en=""/>
		<item key="a02" value="7e798bd9d5b24a619fd1a6a80eb4e10b" desc_en=""/>
		<item key="a03" value="a96d76616fc34202b53f623fc3a535d5" desc_en=""/>
		<item key="a04" value="df69b42b060c455baa96d39ac9fb0880" desc_en=""/>
		<item key="a07" value="0187dcf59cea43bfbcb135776106f571" desc_en=""/>
		<item key="a05" value="b641fca1cfde49eb824226b2fb979657" desc_en=""/>
		<item key="a06" value="7f9dfeb4de084003bff0f210326ad5d9" desc_en=""/>
		<item key="a055" value="a0ca4b6b23e44a20938c5251e0a47639" desc_en=""/>
		<item key="a066" value="5bbab17158fb40719aa66bd08dc84a8b" desc_en=""/>
		<item key="a10" value="7a6d0628c63148038549d8356e4614e4" desc_en=""/>
		<item key="a14" value="eca3c0cec4794d2ea232a8ba8d387e3a" desc_en=""/>
		<item key="a15" value="28b920cf65d44deb987ee13ee668ae6d" desc_en=""/>
		<item key="a16" value="877b70e978e641cbb209283dfadb9ee1" desc_en=""/>
		<item key="a17" value="b6d7df2429fa4906bdf686cebecfa5c5" desc_en=""/>
		<item key="a11" value="01606b136c8647eaa4db471a3931df7a" desc_en=""/>
		<item key="a12" value="a8a68193c2914bdaa7317d08e9c2d81d" desc_en=""/>
		<item key="a13" value="223de5facb07431e8bd7a54bfb457477" desc_en=""/>

		<item key="aid01" value="3de980dd998a4d83bc46bba56cd3875b" desc_en=""/>
		<item key="aid02" value="a6f4fd9399654cf3bb8244d1e78bf725" desc_en=""/>
		<item key="aid03" value="29598c48b5b5476696ddde99c4a3a207" desc_en=""/>
		<item key="aid04" value="db56475770e3442a8d6af6aa4b95645e" desc_en=""/>
		<item key="aid07" value="26d7e2eaf7b44a5fb28817f13dee7fe4" desc_en=""/>
		<item key="aid05" value="0d6e891fc70f4c91a164aad41dbce638" desc_en=""/>
		<item key="aid06" value="50217ea6f0144782be47dfc2feb7f5ee" desc_en=""/>
		<item key="aid055" value="2955628d94f547c0a58e20841f1eaa3c" desc_en=""/>
		<item key="aid066" value="6ae709a7f7a94410972fb7bb2c9b488c" desc_en=""/>
		<item key="aid10" value="1a1a12ee67e7441b9329e33295692245" desc_en=""/>
		<item key="aid14" value="66a9a0d13d0d4b74b57653303f9018a0" desc_en=""/>
		<item key="aid15" value="75093cf9a27a4440b6ef008bc61d3ea7" desc_en=""/>
		<item key="aid16" value="0757e2bed2eb47a9b42f606cae060d26" desc_en=""/>
		<item key="aid17" value="6d1365cf3f374c318dd1bd7e45ac82f5" desc_en=""/>
		<item key="aid11" value="1879f0dc673243b680aac64b54a59f1b" desc_en=""/>
		<item key="aid12" value="e748702bc1744f8cb370babf69cc645a" desc_en=""/>
		<item key="aid13" value="74f3c128523a4ad4af7dba9327f018ad" desc_en=""/>
	</mapping>

</root>
我这就没写注释了,最好在开发的时候还是写上对应的注释,让别的开发能够明白字段含义

mapping文件放置在webapp/styles/config下,等下就要通过这个路径加载到xml文件并且读取

二、编写xml读取工具类

import org.w3c.dom.Document;
import org.xml.sax.SAXException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import java.io.IOException;

public class XmlUtils {

    /**
     * 根据xml解析属性
     * @param path xml路径
     * @param id mapping组id
     * @param key 键值对key标识
     * @return value key对应的value
     * @throws SAXException
     * @throws IOException
     * @throws Exception
     */
    public static String getMappingValue(String path, String id, String key)
            throws SAXException, IOException, Exception {
        if(id=="exchange_type"){
            System.out.println(key+"=================");
        }
        // 解析文件,生成document对象
        DocumentBuilder builder = DocumentBuilderFactory.newInstance()
                .newDocumentBuilder();
        Document document = builder.parse(Utils.getStringStream(Utils
                .captureHtml(path)));
        // 生成XPath对象
        XPath xpath = XPathFactory.newInstance().newXPath();

        String webTitleLang = (String) xpath.evaluate("/root/mapping[@id='"
                        + id + "']/item[@key='" + key + "']/@value", document,
                XPathConstants.STRING);
        return webTitleLang;
    }

    /**
     * 根据key取出bpm组value属性
     * @param key
     * @return
     * @throws SAXException
     * @throws IOException
     * @throws Exception
     */
    public static String getBpmMappingValue(String key)
            throws SAXException, IOException, Exception {
        key = key.trim();
        String webTitleLang = getMappingValue(Constants.PATH+"styles/config/mapping.xml","bpm",key);
        return webTitleLang;
    }

}

通过这几段代码可以获取到xml中item标签对应key的数据,这里我是获取value值,也可以对这个匹配规则进行修改。

三、测试

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值