使用dom4j 解析xml
来源:互联网 发布:成绩录入系统 源码 编辑:程序博客网 时间:2024/06/05 09:03
首先:需要把dom4j-*.jar 加载到class path 下..
需要导入dom4j 下的类
需要解析的xml 文件格式如下:
dom4j 解析xml 文件的java 代码
/** 解析响应内容 */@SuppressWarnings("unchecked")public PosSign domXmlResponse(String xmlContent) {PosSign pos = new PosSign();try {Document document = DocumentHelper.parseText(xmlContent);document.setXMLEncoding("GBK");Element elements = document.getRootElement();for (Iterator i = elements.elementIterator(); i.hasNext();) {Element element = (Element) i.next(); // dom 第一层元素if (element.getName().equals("PUB")) {for (Iterator j = element.elementIterator(); j.hasNext();) { // 遍历<PUB>下的节点Element node = (Element) j.next(); // 获得<PUB>元素每一个节点if ("TRXTIME".equals(node.getName())) { // 输出PUBpos.setTrxTime(node.getText());} else if ("TRXDATE".equals(node.getName())) {pos.setTrxDate(node.getText());}}} else if ("OUT".equals(element.getName())) {for (Iterator j = element.elementIterator(); j.hasNext();) { // 遍历<OUT>下的节点Element nodeOut = (Element) j.next();// dom 第二层元素 OUT的子元素 获得<OUT>元素每一个节点if ("TRXCODE".equals(nodeOut.getName())) { // 输出OUTpos.setTrxCode(nodeOut.getText());} else if ("RETCODE".equals(nodeOut.getName())) {pos.setRetCode(nodeOut.getText());} else if ("RETMSG".equals(nodeOut.getName())) {pos.setRetMsg(nodeOut.getText());} else if ("POSID".equals(nodeOut.getName())) {pos.setPosId(nodeOut.getText());} else if ("MERID".equals(nodeOut.getName())) {pos.setMerId(nodeOut.getText());} else if ("PINKEY".equals(nodeOut.getName())) {pos.setPin_KEY(nodeOut.getText());} else if ("TKEY".equals(nodeOut.getName())) {pos.setT_KEY(nodeOut.getText());}}}}} catch (Exception e) {System.out.println(e);}return pos;}
注:当使用dom4j 时,使用 DocumentHelper.parseText(xmlContent); 时如果xmlContent有空格会报异常。Content is not allowed in trailing section
是什么意思呢。就是dom4j解析的内容有宁空格出现,需要把空格去掉。 DocumentHelper.parseText(xmlContent.trim());
解析结果:
创建一个xml 文件代码如下:
public static void createXml(String fileName) { Document document = DocumentHelper.createDocument(); Element employees=document.addElement("employees"); Element employee=employees.addElement("employee"); Element name= employee.addElement("name"); name.setText("ddvip"); Element sex=employee.addElement("sex"); sex.setText("m"); Element age=employee.addElement("age"); age.setText("29"); try { Writer fileWriter=new FileWriter(fileName); XMLWriter xmlWriter=new XMLWriter(fileWriter); xmlWriter.write(document); xmlWriter.close(); } catch (IOException e) { System.out.println(e.getMessage()); } }
生成的xml 文件如下:
在做dom4j 解析时,也可以解析文本内容 。
Document document = DocumentHelper.parseText(xmlContent);
document.setXMLEncoding("GBK");
fileName 是文件的全限定名
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File(fileName));
注:PosSign 是一个javaBean 属性是xml 中的每一个元素 ..
这个查看XML 的工具叫 foxechs 下载地址:http://download.csdn.net/download/BOBO56SH/2026527
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 如何查找rpm安装的包里的文件的安装位置?
- Strategy Pattern
- Linux下的多进程编程——fork(),exec()等函数的使用
- 【图】S5PV210 多媒体广告机核心板第一版真实图片,下一版要稍微调整。
- vc 23中常见错误
- 使用dom4j 解析xml
- 如何在 Windows XP 中自定义Windows Explorer 视图
- 开始学习c3dl(Canvas 3D JS Libary)
- 在asp.net中应用sqlserver数据库之一(创建连接字符串)
- B2C 网站的行为分析与数据挖掘
- 密码学扩散和混淆备忘
- man命令详解
- 关于ADT的本地安装方法
- 如何设计网站