JAVA快速解析XML并且获取结果

177 阅读1分钟

题记

网上也是一搜一片,但是很多都不在点子上,今天是我把我综合用下来觉得最合适的拿过来的。

上代码

引入pom

<!-- dom4j -->
<dependency>
    <groupId>dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>1.6.1</version>
</dependency>

处理XML代码

//1.创建Reader对象
SAXReader reader = new SAXReader();
//2.加载xml
Document document = reader.read(new ByteArrayInputStream(resp.getBytes()));

//3.获取根节点
Element rootElement = document.getRootElement();
Iterator iterator = rootElement.elementIterator();
while (iterator.hasNext()){
    Element stu = (Element) iterator.next();
    List<Attribute> attributes = stu.attributes();
    System.out.println("======获取属性值======");
    for (Attribute attribute : attributes) {
        System.out.println(attribute.getValue());
    }
    System.out.println("======遍历子节点======");
    Iterator iterator1 = stu.elementIterator();
    while (iterator1.hasNext()){
        Element stuChild = (Element) iterator1.next();
        System.out.println("节点名:"+stuChild.getName()+"---节点值:"+stuChild.getStringValue());
    }
}

注意的点

从网上一找一片,都是一模一样的读本地XML文件的,
但是起码在我的应用场景中是拿到的返回结果就是XML格式的。
所以需要适当的去看看api
发现read有一堆重载方法
String的不行,其实也是要类似路径的值
最终我认为inputStream比较好整
所以将String转为了inputStream
new ByteArrayInputStream(resp.getBytes())

image.png