java如何根据xml节点地址获取节点中的内容呢?
下文笔者讲述java代码获取xml节点中内容的方法及示例分享,如下所示
借助工具类 dom4j
即可实现获取xml节点中的内容
例:
引入
maven依赖包
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
XmlUtil工具类编写
import java.util.*;
import java.util.stream.Collectors;
import org.dom4j.*;
public class XmlUtil {
/**
* 获取XML指定节点内容
* @param xml xml内容
* @param attrName 节点名称(例如:TranData.OutputData.Result)
* @return
* @throws Exception
*/
public static String getXmlAttrValue(String xml,String attrName) throws Exception {
if (null==xml||xml.equals("")||null==attrName||attrName.equals("")){
return null;
}
String[] attrs = attrName.split("\\.");
int length = attrs.length;
String result = null;
// 将xml格式字符串转化为DOM对象
Document document = DocumentHelper.parseText(xml);
// 获取根结点对象
Element element = document.getRootElement();
list<Element> elements = Arrays.asList(element);
for (int i = 0; i < length; i++) {
Map<String,Element> elementMap = elements.stream().collect(Collectors.toMap(e->e.getName(),e->e));
if (elementMap.containsKey(attrs[i])){
if (i==length-1){
result = elementMap.get(attrs[i]).asXML();
break;
}else {
elements = elementMap.get(attrs[i]).elements();
}
}else {
throw new Exception("Node does not exist:"+attrName);
}
}
return result;
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


