XML文档解析包 Dom4j 简单使用
发布时间:2020-12-16 09:17:41 所属栏目:百科 来源:网络整理
导读:一、摘要 DOM4J是dom4j.org出品的一个开源XML解析包,是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP 官方下载地址:http://www.dom4j.org/dom4j-1.6.1/ 下载完成后的文档结构如下 直接导入d
一、摘要
DOM4J是dom4j.org出品的一个开源XML解析包,是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP
官方下载地址:http://www.dom4j.org/dom4j-1.6.1/ 下载完成后的文档结构如下 直接导入dom4j-1.6.1.jar 二、使用 1. 提供的xml文档内容 <RESULT> <CODE>1</CODE> <REMARK>返回成功</REMARK> <PHONES> <PHONEINFO id="1"> <NAME>测试1</NAME> <NUMBER>22222222221</NUMBER> </PHONEINFO> <PHONEINFO id="2"> <NAME>测试2</NAME> <NUMBER>12222222222</NUMBER> </PHONEINFO> </PHONES> </RESULT>存放在android项目根目录/assets文件夹下,文件名:phones.xml 2. 下面将解析代码封装成方法 /** * Dom4j解析xml文件 */ public static void startReadXmlFromFile(Context ctx) { Document doc = null; List<PhoneInfo> mList = null; try { // 读取并解析XML文档 // SAXReader就是一个管道,用一个流的方式,把xml文件读出来 // SAXReader reader = new SAXReader(); doc = reader.read(ctx.getAssets().open("phones.xml")); // phones.xml表示你要解析的xml文档 // 1. 获取根节点 Element root = doc.getRootElement(); Log.d("tag","根节点:" + root.getName()); // 输出名称 // 2. 获取根节点下指定的子节点 Phones Iterator iter = root.elementIterator("PHONES"); if (iter.hasNext()) { // 3. 实例化集合 mList = new ArrayList<PhoneInfo>(); // 4. 指向重复子节点 Element phonesEle = (Element) iter.next(); Log.d("tag","节点:" + phonesEle.getName()); // 5. 遍历节点,获取数据 for (Iterator iterator = phonesEle.elementIterator("PHONEINFO"); iterator .hasNext();) { Element phoneEle = (Element) iterator.next(); // 6. phone属性 int id = Integer.valueOf(phoneEle.attributeValue("id").toString()); // 7. 获取phone子节点 Iterator num = phoneEle.elementIterator("NUMBER"); Element numEle = (Element) num.next(); Iterator name = phoneEle.elementIterator("NAME"); Element nameEle = (Element) name.next(); // 8. 封装数据 (获取节点数据) PhoneInfo info = new PhoneInfo(id,nameEle.getText(),numEle.getText()); Log.d("tag",info.toString()); mList.add(info); } } } catch (Exception e) { e.printStackTrace(); } } 结果: 02-08 15:32:45.446: D/tag(25376): 根节点:RESULT 02-08 15:32:45.446: D/tag(25376): 节点:PHONES 02-08 15:32:45.446: D/tag(25376): id : 1,name: 测试1,number: 22222222221 02-08 15:32:45.446: D/tag(25376): id : 2,name: 测试2,number: 12222222222
// 下面的是通过解析xml字符串的 doc = DocumentHelper.parseText(xml); // 将字符串转为XML (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |