java如何根据xml节点地址获取节点中的内容呢?

欣喜 Java经验 发布时间:2023-11-20 15:10:59 阅读数:4998 1
下文笔者讲述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;
}
}
  
版权声明

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

本文链接: https://www.Java265.com/JavaJingYan/202311/17004642937333.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

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

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者