题记
网上也是一搜一片,但是很多都不在点子上,今天是我把我综合用下来觉得最合适的拿过来的。
上代码
引入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())