现有一个配置文件,需要解析出根节点与子节点,还有子节点下属性的信息。虽然w3c.dom规范亦可以解析,但这儿我们尝试使用dom4j的方式来解析。
涉及到的jar包有dom4j-1.6.1.jar
xml配置文件:
<?xml version="1.0" encoding="UTF-8"?> <beans> <bean id="computer" class="org.crazyit.app.main.Computer"> <property name="name" value="孙悟空的智慧型手机" /> <property name="out" ref="betterPrinter" /> </bean> <bean id="printer" class="org.crazyit.app.inter.impl.Printer" /> <bean id="betterPrinter" class="org.crazyit.app.inter.impl.BetterPrinter" /> <bean id="now" class="java.util.Date" scope="prototype" /> </beans>
解析xml配置文件的java类:
SAXReader reader = new SAXReader(); Document doc = reader.read(new File(filePath)); //得到根节点 Element root = doc.getRootElement(); //遍历根节点下的子节点(同样也可以遍历某个含子节点的子节点) for(Object obj : root.elements()) { Element ele = (Element) obj; //获取子节点的属性 String beanId = ele.attributeValue("id"); String beanClazz = ele.attributeValue("class"); String beanScope = ele.attributeValue("scope"); }
解析xml格式的字符串:
Map map = new HashMap(); StringReader reader = new StringReader(msg); InputSource source = new InputSource(reader); SAXReader sr = new SAXReader(); Document doc = sr.read(source); //得到Document之后,下面的步骤就跟上面解析xml文件的步骤一致
但如果是一般的类型:如html那种配置文件(即不是这种Spring的xml),解析的语法又有不同,如:
Map map = new HashMap(); Document doc = null; try { doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称 Iterator iter = rootElt.elementIterator("head"); // 获取根节点下的子节点head // 遍历head节点 while (iter.hasNext()) { Element recordEle = (Element) iter.next(); String title = recordEle.elementTextTrim("title"); // 拿到head节点下的子节点title值 System.out.println("title:" + title); map.put("title", title); Iterator iters = recordEle.elementIterator("script"); // 获取子节点head下的子节点script // 遍历Header节点下的Response节点(如果子节点下又有子节点的话,继续遍历) Iterator iterss = rootElt.elementIterator("body"); ///获取根节点下的子节点body // 遍历body节点 while (iterss.hasNext()) { Element recordEless = (Element) iterss.next(); String result = recordEless.elementTextTrim("result"); // 拿到body节点下的子节点result值 System.out.println("result:" + result); Iterator itersElIterator = recordEless.elementIterator("form"); // 获取子节点body下的子节点from // 遍历body节点下的from节点 } } catch (DocumentException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return map; }
相关推荐
// 下面的是通过解析xml字符串的 doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 System.out.println("根节点:"+ rootElt.getName()); // ...
dom4j解析xml字符串实例
Dom4j遍历解析XMLDom4j遍历解析XML
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
资源名称:使用Javascript解析xml文件或xml格式字符串 中文WORD版 内容简介: 本文档主要讲述的是使用Javascript解析xml文件或xml格式字符串;javascript中,不论是解析xml文件,...
NULL 博文链接:https://yangyongbyjava.iteye.com/blog/2068636
解析XML文件(字符串)的两种方法,dom4j解析XML时候忽略DTD文件验证
dom4j以String的方式读取XML的内容,并给String的值赋值,写入XML中
使用dom4j解析xml,可以解析xml文件,或者String型的xml字符串
xml数据前后台解析;提供了两种方式:dom4j与jdom对xml文件、xml字符串的读与写操作;同时实现在前台用jquery解析xml,将数据展示在页面上,程序可以跑
将xml写成字符串的形式,采用dom4j进行解析,一个简单的例子
该文挡中包含了用dom4j解析xml文件的方法和步骤,包括从文件中解析和从xml格式的字符串中解析
通过dom4j解析xml文件或xml字符串,同时利用dom4j解析soap报文,解析出所需要的字段,使用的相对比较基础,有需要的可以参考一下。
WebService在传递数据的时候只能传递字符串,当我们返回一些简单的字符串时我们可以直接返回,但是当我们想返回比如List,Map等复杂类型的数据时拼接字符串就是个很麻烦的工作,这时我们就用到了dom4j这个工具。
//声明xml字符串 String fileString = ""; //创建DAO对象 MachineroomDao machineroom_dao = new MachineroomDao(); Cab_equipmentDao cab_equipment_dao = new Cab_equipmentDao(); Equip_...
使用SAX DOM两种解析方式解析文件
使用 dom4j 将 XML 文档解析为我自己的格式 格式: 私人字符串名称; 私有字符串值; 私人列表 childList; private Map<String> propMap = new HashMap(); 意义 将 XML 文档对象转换成这个格式对象(XmlElement...
NULL 博文链接:https://navylee.iteye.com/blog/727103
本篇文章主要是对通过dom4j解析xml字符串的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
Java解析XML的四种方法 1. DOM生成和解析XML文档 2. SAX生成和解析XML文档 3. DOM4J生成和解析XML文档 4. JDOM生成和解析XML