dom4j处理xml文件,读取xml字符串,格式化xml文件
2014-02-17 10:33
375 查看
1.xml文件
2.java interface
3.java implements
4.测试parserSmsXml方法
<?xml version="1.0" encoding="UTF-8"?> <employees> <employee> <name>steve</name> <sex>m</sex> <age>30</age> </employee> </employees>
2.java interface
/** * @author huangjing * @date 2014-2-13 * 定义XML文档建立与解析的接口 */ public interface XmlDocument { /** * 建立XML文档 * @param fileName 文件全路径名称 */ public void createXml(String fileName); /** * 解析XML文档 * @param fileName 文件全路径名称 */ public void parserXml(String fileName); /*** * 解析短信发送返回的xml信息,封装成map. * @param sms * @return */ public Map parserSmsXml(String sms); }
3.java implements
/** * @author huangjing * @date 2014-2-13 */ public class Dom4j implements XmlDocument { @Override public 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("dddvip"); Element sex = employee.addElement("sex"); sex.setText("f"); Element age = employee.addElement("age"); age.setText("29"); try { /** 格式化输出,类型IE浏览一样 */ OutputFormat format = OutputFormat.createPrettyPrint(); Writer fileWriter = new FileWriter(fileName); XMLWriter xmlWriter = new XMLWriter(fileWriter,format); xmlWriter.write(document); xmlWriter.close(); } catch (IOException e) { System.out.println(e.getMessage()); } } @Override public void parserXml(String fileName) { File inputXml = new File(fileName); SAXReader saxReader = new SAXReader(); try { Document document = saxReader.read(inputXml); Element employees = document.getRootElement(); for (Iterator i = employees.elementIterator(); i.hasNext();) { Element employee = (Element) i.next(); for (Iterator j = employee.elementIterator(); j.hasNext();) { Element node = (Element) j.next(); System.out.println(node.getName() + ":" + node.getText()); } } } catch (DocumentException e) { System.out.println(e.getMessage()); } System.out.println("dom4j parserXml"); } @Override public Map parserSmsXml(String sms) { Map map = new HashMap(); // SAXReader saxReader = new SAXReader(); try { Document document = DocumentHelper.parseText(sms); Element returnsms = document.getRootElement(); for (Iterator i = returnsms.elementIterator(); i.hasNext();) { // Element employee = (Element) i.next(); // for (Iterator j = employee.elementIterator(); j.hasNext();) { Element node = (Element) i.next(); // System.out.println(node.getName() + ":" + node.getText()); map.put(node.getName(), node.getText()); // } } } catch (DocumentException e) { e.printStackTrace(); System.out.println(e.getMessage()); } return map; } }
4.测试parserSmsXml方法
@Test public void testParserSmsXml(){ String sms = "<?xml version='1.0' encoding='utf-8' ?><returnsms>"+ "<returnstatus>Success</returnstatus>"+ "<message>ok</message>"+ "<remainpoint>76904</remainpoint>"+ "<taskID>5002192</taskID>"+ "<successCounts>1</successCounts></returnsms>"; XmlDocument d = new Dom4j(); Map map = d.parserSmsXml(sms); System.out.println(map); }
相关文章推荐
- 【java】xml文件表建立及读取环境搭建并采用DOM4J完成XML文件导入到数据库
- dom4j读取xml字符串和读取xml文件
- C#-XML文件提取字符串+字符串存为XML文件+创建XML(自定义节点)文件+读取节点内容
- Java生成和解析XML格式文件和字符串的实例代码【dom4j中的SAXReader对象读取并解析xml文件】
- Dom4j 读取一个XML文件和将String写成XML文件
- dom4j 复制xml文件/复制xml文件中选中节点到另一个xml文件
- 合理使用DataSet和DataGridView读取xml文件到DataGridView;保存DataGridView到xml文件
- 在用c++读取xml文件时,运行时出现以下错误:出现未处理的“System.Xml.XmlException”类型的异常出现在 system.xml.dll 中
- drp—Dom4j读取xml配置文件
- 使用dom4j创建XML文件,并读取XML内容
- dom4j输出格式化的xml文件
- Domj4读取XML文件--实现获取XML文件中所有的标签节点
- C#2005如何读取XML文件中的数据库连接字符串??? (好像和2003不一样啊) 急,跪求!
- Dom4j读取xml文件——JAVA
- Linq to Xml,从其他xml文件读取节点(Element和Text混合)插入当前xml文件, 尖括号不转义
- 使用dom4j读取xml文件
- dom4j创建xml文件,解析xml,写入xml文件,遍历xml文件
- 使用dom4j读取xml配置文件
- [libexpat]_[XML处理]_[C/C++使用libexpat库以数据流(SAX模型)的方式读取(解析)大XML文件]
- 从ini格式文件中(没行是“键=值”格式)中读取配置项的值,Split字符串的处理(综合)