import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.junit.Before; import org.junit.Test; public class TestDom4j { private String requestXML = null; @Before public void before() throws IOException{ /** * 将文件中 转换为 字符串 */ File file = new File("D:\\xmls\\request.xml"); FileReader reader = new FileReader(file);//字符流 //缓冲字符流 BufferedReader bufferedReader = new BufferedReader(reader); String line = ""; StringBuffer str = new StringBuffer(); while((line = bufferedReader.readLine()) != null){ str.append(line); } requestXML = str.toString(); // requestXML = "<?xml version=\"1.0\" encoding=\"GBK\"?>"+ // "<request version=\"1.0\">"+ // "<system>"+ // "<sysid>ESS</sysid>"+ // "<uid>ESS0025</uid>"+ // "<servicename>AEGON_WS_ESS_USER_LOGIN</servicename>"+ // "</system>"+ // "<queryinfo>"+ // "<filed name=\"STATUS\">1</filed>"+ // "<filed name=\"ERRORMASSAGE\"/>"+ // "<filed name=\"RESULTTYPE\"/>"+ // "<filed name=\"PATH\"/>"+ // "<filed name=\"RESULTCOUNT\">0</filed>"+ // "<filed name=\"TIME\">2014-05-06 14:52:34</filed>"+ // "</queryinfo>"+ // "<query>"+ // "<filed name=\"name\" type=\"String\">李俊华</filed>"+ // "<filed name=\"sNumber\" type=\"String\">888888888</filed>"+ // "<filed name=\"password\" type=\"String\">gaoweigang</filed>"+ // "</query>"+ // "</request>"; } /** * 将xml封装到Map中 * @throws DocumentException */ @Test public void testParseXmlToMap() throws DocumentException{ //定义封装XML中query信息的map Map<String, String> map = new HashMap<String, String>(); Document document = DocumentHelper.parseText(requestXML); //获取root元素 Element rootElement = document.getRootElement(); System.out.println(rootElement.getName());//获取根元素的名字:request //遍历rootElement元素的直接子元素(注意:不会遍历间接子元素) for(Iterator i = rootElement.elementIterator(); i.hasNext();){ //获取根元素直接子元素directChildElement Element directChildElement = (Element)i.next(); //遍历directChildElement元素的直接子元素 if("query".equals(directChildElement.getName())) for(Iterator j = directChildElement.elementIterator(); j.hasNext();){ Element element = (Element)j.next(); if("filed".equals(element.getName())){ String key = element.attributeValue("name"); System.out.println(key);//name, sNumber, password String value = element.getText(); System.out.println(value);//李俊华, 88888888, gaoweigang map.put(key, value);//把数据封装到Map中 } } } } @Test public void testXMLToMap() throws IOException, DocumentException{ Map<String,String> map = new HashMap<String, String>(); File file = new File("D:\\xmls\\request.xml"); SAXReader reader = new SAXReader(); Document document = reader.read(file); //获取根元素 Element rootElement = document.getRootElement(); //遍历根元素的直接子元素 for(Iterator i = rootElement.elementIterator(); i.hasNext();){ Element directChildElement = (Element)i.next(); if("query".equals(directChildElement.getName())){ for(Iterator j = directChildElement.elementIterator(); j.hasNext();){ Element element = (Element)j.next(); if("filed".equals(element.getName())){ String key = element.attributeValue("name"); System.out.println(key); String value = element.getText(); System.out.println(value); map.put(key, value);//将数据封装到Map } } } } } }
相关推荐
java dom4j 解析xml的例子,可用,另外内涵一个帮助类,其功能是:根据某个java工程中的文件名,获取这个文件在java工程中的绝对路径。解压加载到myeclipse上可用。
dom4j 解析xml文件小例子 dom4j 解析xml文件小例子
Dom4j解析XML(例子)+Dom4j 使用简介
一个关于用dom4j解析xml,遍历xml,建立xml的简单例子
Dom4j例子 Dom4j例子 Dom4j例子 解析大部分的XML
Dom4j解析xml与配置文件的小例子,简单的Dom4j的小应用。
这是一个Dom4j解析XML的例子,为做复杂递归处理前期所写的例子。涵盖了XML的解析方面大部分核心API。
这里有很多dom4j解析的小例子,结合实例看看,就能懂得!
DOM解析XML文件例子DOM解析XML文件例子DOM解析XML文件例子
Dom4j解析xml的包和API以及例子
dom4j帮助文档及使用说明及案例,初学者快速上手。
使用Dom4j解析复杂的XML文件,简单的xml文件一个标签对,而复杂的xml文件标签对中还有自己的属性,那么这样的xml文件怎么解析呢?看了我的例子就知道了......
zip包中包含dom4j-1.6.1.jar、Dom4jDemo.java、art.xml 其中Dom4jDemo.java是dom4j解析art.xml的例子
dom4j解析Xml方式,里面附有例子以及包,绝对可以跑通的程序。
很简单的dom4j例子,看下你就会用了!
dom4j解析xml文件所需jar和测试例子 dom4j-1.6.1.jar jaxen-1.1-beta-7.jar crimson.jar 1个测试类
本工程自带所需jar 本工程简单易懂 适合新手学习:)
利用dom4j创建和解析XML文件的一个很好的例子
NULL 博文链接:https://javastudyeye.iteye.com/blog/794787
dom4j 的包装类,可以让你轻易获取并改变xml的节点 以及生成一个xml