解析xml(使用Dom4j)--简单高效
2017-03-16 14:34
489 查看
今天朋友让我写一个解析xml的Demo,下面总结下:
我使用的是dom4j来解析的,所以得首先引用dom4j-1.6.1.jar。一种是解析xml文件,一种是解析xml格式字符串。
然后代码如下,要解析的xml文件在附件中。
我使用的是dom4j来解析的,所以得首先引用dom4j-1.6.1.jar。一种是解析xml文件,一种是解析xml格式字符串。
然后代码如下,要解析的xml文件在附件中。
package util; import java.io.File; import java.net.URISyntaxException; import java.net.URL; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** * <B>说 明</B>: * * @author 作 者 名:郑雄伟<br/> * E-mail :zhengxiongwei89@163.com * * @version 版 本 号:V1.0.<br/> * 创建时间:2017年3月16日 上午11:33:55 */ public class Dom4jDemo { /** * 解析xml文件 * * @param xmlFile */ private static void parseXmlFile(File xmlFile) { try { SAXReader reader = new SAXReader(); // 读取文件 转换成Document Document document = reader.read(xmlFile); // 获取根节点元素对象 Element root = document.getRootElement(); // 遍历 listNodes(root); } catch (DocumentException e) { e.printStackTrace(); } } /** * 解析xml字符串 * * @param xmlStr */ private static void parseXmlStr(String xmlStr) { try { Document document = DocumentHelper.parseText(xmlStr); // 获取根节点元素对象 Element root = document.getRootElement(); // 遍历 listNodes(root); } catch (DocumentException e) { e.printStackTrace(); } } @SuppressWarnings("unchecked") public static void listNodes(Element node) { System.out.println("当前节点的名称:" + node.getName()); // 首先获取当前节点的所有属性节点 List<Attribute> list = node.attributes(); // 遍历属性节点 for (Attribute attribute : list) { System.out.println("属性" + attribute.getName() + ":" + attribute.getValue()); } // 如果当前节点内容不为空,则输出 if (!(node.getTextTrim().equals(""))) { System.out.println(node.getName() + ":" + node.getText()); } // 同时迭代当前节点下面的所有子节点 // 使用递归 Iterator<Element> iterator = node.elementIterator(); while (iterator.hasNext()) { Element e = iterator.next(); listNodes(e); } } public static void main(String[] args) { // 解析xml文件 URL resource = Dom4jDemo.class.getResource("NewFile.xml"); try { File xmlFile = new File(resource.toURI()); parseXmlFile(xmlFile); } catch (URISyntaxException e) { e.printStackTrace(); } // 解析xml字符串 String xmlStr = "<?xml version='1.0' encoding='UTF-8'?><ECInformation Date='2016-07-26 09:35:31'><ECInfo><ProjectName>001</ProjectName><ECType>量产前设变</ECType><ECRNumber>shanxi</ECRNumber><ECNNumber>XXX</ECNNumber><ECNCreatorName>马大哥</ECNCreatorName><ECNCreatorCode>40545</ECNCreatorCode><ECTransferInfoTables><ECTransferInfoTable><ChangeObjects><ChangeObj><ChangeBefore><ChangeBeforePartNumber>123</ChangeBeforePartNumber><ChangeBeforePartName>河北</ChangeBeforePartName></ChangeBefore><ChangeAfter><ChangeAfterPartNumber>1231-AA</ChangeAfterPartNumber><ChangeAfterPartName>重庆</ChangeAfterPartName></ChangeAfter></ChangeObj></ChangeObjects></ECTransferInfoTable></ECTransferInfoTables></ECInfo></ECInformation>"; parseXmlStr(xmlStr); } }
相关文章推荐
- 在已知XML文件内容时,使用dom4j简单解析XML(String类型的XML)(用于服务器端)
- 简单使用DOM4J解析XML(如何使用dom4j对xml进行读取)
- xml学习笔记—简单使用DOM4J解析xml
- 简单xml的使用以及xml的解析dom4j和jaxp
- xml简单介绍及使用dom4j进行解析
- 使用 dom4j 解析 XML
- 使用dom4j解析XML例子
- 使用 dom4j 解析 XML
- 使用dom4j解析xml 遇到困难
- 使用 dom4j 解析 XML
- 使用dom4j的xPath解析XML
- 最简单的一个XML解析-dom4j
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析XML
- 使用dom4j解析XML例子
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用xalan代替dom4j解析xslt和xml