如果项目中要添加dom4j类库支持,需要将工具包加载到项目类路径下,或采用maven包管理的话可以在pom.xml里边添加项目包依赖即可,如下:
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
Dom4J的常用方法:
- SAXReader 对象 xml文件读取器
- Document read(String path);加载执行xml文档
- Document 对象
- Element getRootElement() :获取根元素对象(根标签)
- Element 对象
- List elements() :获取所有的子元素
- List elements(String name):根据指定的元素名称来获取相应的所有的子元素
- Element element(String name):根据指定的元素名称来获取子元素对象,如果元素名称重复,则获取第一个元素
- String elementText(Stringname) :根据指定的子元素名称,来获取子元素中的文本
- String getText():获取当前元素对象的文本
- String attributeValue(Stringname):根据指定的属性名称获取其对应的值
Dom4J的解析案例分析:
public String returnMa(HttpServletRequest servletRequest)throws Exception{
//读取报文
InputStream inputStream = servletRequest.getInputStream();
SAXReader saxReader = new SAXReader();
InputStreamReader strInStream = new InputStreamReader(inputStream, "UTF-8");
Document read1 = saxReader.read(strInStream);
Element rootElement = read1.getRootElement();
HashMap<String, String> map = new HashMap();
xmlToMap(rootElement,map);
//返回报文
Document document = DocumentHelper.createDocument();
document.setXMLEncoding("GBK");
Element packet = document.addElement("PACKET");
Element head = packet.addElement("HEAD");
Element uuid = head.addElement("UUID");
uuid.addText(map.get("UUID")==null?"":map.get("UUID"));
}