一、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值,也可以对这个匹配规则进行修改。
三、测试