java实现xml类型的字符串提取相对应的字段
将xml格式字符串提取字段
/**
* 提取xml文件中想要的字段值封装到map中
* @param xml
*/
public Map<String,Object> setXmlToMap(String xml) throws DocumentException {
Map<String,Object> map = new HashMap<>();
/***
* import org.dom4j.Element;
* import org.dom4j.Document;
* import org.dom4j.DocumentException;
* import org.dom4j.DocumentHelper;
* 使用如上包导入
*/
Document doc = DocumentHelper.parseText(xml);
//eg:xml 示例
//<person>
// <student>
// <age>1</age>
// <student>
// <teacher>
// <age>20</age>
// <teacher>
// </person>
//指向根节点
//即拿到的是为person节点
Element root = doc.getRootElement();
Iterator<Element> elementIterator = root.elementIterator();
while(elementIterator.hasNext()){
//循环遍历拿到的是student 节点以及teacher节点
Element firstIterator = elementIterator.next();
//代表的是为teacher或者student节点的名称
String firstName = firstIterator.getName();
//拿到的是teacher 或者student所代表的值 因为其下还有子节点所以该值为空
String firstText = firstIterator.getText();
//需要拿到teacher或student其下的age值还需再遍历一遍循环
Iterator<Element> secondIterator = firstIterator.elementIterator();
while(secondIterator.hasNext()){
Element secondElement = secondIterator.next();
String secondName = secondElement.getName();
String secondText = secondElement.getText();
map.put(secondName,secondText);
System.out.println(secondName+"\t"+secondText);
}
//目前只有3层嵌套如果还有更多嵌套可再次循环遍历
}
return map;
}

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)