java解析document_java 值Document解析xml详细介绍

java 值Document解析xml详细介绍

使用jar包:jdom.jar

配置文件格式 global.xml

0cdd45fc5d6987cfd2c6db62d2b1d713.png

一、获取输入的值组成的结点

我们将每个结点使用“.” 拼接起来, 如结点i ,拼接为abc.def.i, 注意不包含root。解析每个结点的名字。

/**

* 获取对应结点的名字

* @param name 不包含root结点的拼接,ie: abc.def.i

* @return

*/

private String[] parsePropertyName(String name) {

//结点序号从0开始

int size = name.split("\\.").length;

String[] parms =name.split("\\.");

return parms;

}

二、获取对应结点的值

2.1、结点为的形式

/**

* abc.def.i结点下有个结点为:

*

* 获取对应结点的value

* @param name 结点的值(name,是不包含root结点, 使用"."拼接的, ie: abc.def.i)

* @param defaultName 没有获取到该节点内容, 返回默认值

* @return

*/

public synchronized String getPropertyValue(String name, String valueName) {

//获取根结点对象

Element element = doc.getRootElement();

//获取各级结点对应的属性

String[] parms = parsePropertyName(name);

for (String parm : parms) {

element = element.getChild(parm);

}

//得到无儿子结点的element的属性值

return element.getAttributeValue(valueName);

}

2.2. 结点为 8的形式

首先从缓存中获取改改结点的值, 如果没有,在从配置文件中读取,

/**

* 获取结点的值

* <i>8</i>

* @param name 叶子结点的值(name,是不包含root结点, 使用"."拼接的, ie: abc.def.i)

* @return

*/

public synchronized String getProperty(String name) {

//先从缓存中获取

String value = cacheMap.get(name);

if (value != null) {

return value;

}

Element element = getElementByName(name);

if (element == null) {

return null;

}

//获取value

value = element.getText();

//缓存

cacheMap.put(name, value);

return value;

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值