操作xml工具类

public class XMLUtil { public static Logger log = Logger.getLogger(XMLUtil.class); /** * 创建xml文件 * @param doc xml对象 * @param fileName 创建文件的路径 * @param encoding 文件的字符串编码方式 */ public static void createXMLFile(Document doc,String fileName,String encoding){ XMLWriter writer = null; try{ if(!StringUtil.isEmpty(encoding)){ OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding(encoding); writer = new XMLWriter(new FileWriter(fileName),format); }else{ writer = new XMLWriter(new FileWriter(fileName)); } }catch(IOException e){ return; }finally{ try{ if(writer != null) writer.close(); }catch(IOException e){ return; } } } /** * 创建一个document并将根节点加入其中 * @param rootLabel 根节点的label名字 * @return 一个拥有根节点的空Document对象 */ public static Document createDocument(String rootLabel){ Document doc = DocumentHelper.createDocument(); doc.setRootElement(doc.addElement(rootLabel)); return doc; } /** * 将字符串转化为Document类对象 * @param xmlString xml格式的字符串 * @return 一个document对象 */ public static Document convertStringToXml(String xmlString){ if(StringUtil.isEmpty(xmlString)){ xmlString = "<root></root>"; } Document document = null; try{ document = DocumentHelper.parseText(xmlString); }catch(DocumentException e){ } return document; } /** * 给节点添加子节点 * @param parentNode 父节点 * @param nodeLabel 子节点label名 * @param nodeId 子节点id * @param elements 需要往子节点中添加的子元素label和value对 */ @SuppressWarnings("unchecked") public static void addNode(Element parentNode,String nodeLabel,String nodeId,Map elements){ Element newNode = parentNode.addElement(nodeLabel); newNode.addAttribute("id",nodeId); Iterator it = elements.entrySet().iterator(); while(it.hasNext()){ Map.Entry entry = (Map.Entry)it.next(); Object key = entry.getKey(); Object value = entry.getValue(); newNode.addElement((String)key).setText((String)value); } } /** * 给节点添加子节点 * @param parentNode 父节点 * @param nodeLabel 子节点label名 * @param nodeId 子节点id * @param elements 需要往子节点中添加的属性label和value对 */ @SuppressWarnings("unchecked") public static void addNodeWithAttribute(Element parentNode,nodeId); Iterator it = elements.entrySet().iterator(); while(it.hasNext()){ Map.Entry entry = (Map.Entry)it.next(); Object key = entry.getKey(); Object value = entry.getValue(); newNode.addAttribute((String)key,(String)value); } newNode.setText(""); } /** * 从文件中读取xml,转化为字符串 * @param filePath 文件路径 * @return 转化好的xml格式字符串 */ public static String readXmlAsString(String filePath){ SAXReader reader = new SAXReader(); Document document = null; try{ document = reader.read(XMLUtil.class.getClassLoader().getResourceAsStream(filePath)); }catch(DocumentException e){ return ""; } return document.asXML(); } /** * 从文件中读取xml,转化为字符串 * @param file 包含xml数据的文件 * @return 转化好的xml格式字符串 */ public static String readXmlAsString(File file){ SAXReader reader = new SAXReader(); Document document = null; try{ document = reader.read(file); }catch(DocumentException e){ return ""; } return document.asXML(); } /** * 从流中读取xml,转化为字符串 * @param input 包含xml信息的流 * @return 转化好的xml格式字符串 */ public static String readXmlAsString(InputStream input){ SAXReader reader = new SAXReader(); Document document = null; try{ document = reader.read(input); }catch(DocumentException e){ return ""; } return document.asXML(); } /** * 以xpath的方式查找节点 * @param filePath 文件路径 * @param xpath xpath值 * @return 符合条件的节点列表 */ @SuppressWarnings("unchecked") public static List getElementsByXPath(String filePath,String xpath){ SAXReader reader = new SAXReader(); List<Element> properties = null; try{ Document doc = reader.read(XMLUtil.class.getClassLoader().getResourceAsStream(filePath)); properties=doc.selectNodes(xpath); }catch(Exception e){ return null; } return properties; } /** * 以xpath的方式查找节点 * @param input xml文件流 * @param xpath xpath值 * @return 符合条件的节点列表 */ @SuppressWarnings("unchecked") public static List getElementsByXPath(InputStream input,String xpath){ SAXReader reader = new SAXReader(); List<Element> properties = null; try{ Document doc = reader.read(input); properties=doc.selectNodes(xpath); }catch(Exception e){ return null; } return properties; } /** * 以xpath的方式查找节点 * @param file xml文件 * @param xpath xpath值 * @return 符合条件的节点列表 */ @SuppressWarnings("unchecked") public static List getElementsByXPath(File file,String xpath){ SAXReader reader = new SAXReader(); List<Element> properties = null; try{ Document doc = reader.read(file); properties=doc.selectNodes(xpath); }catch(Exception e){ return null; } return properties; } /** * 以xpath的方式查找节点 * @param doc xml文档对象 * @param xpath xpath路径 * @return 符合条件的节点列表 */ @SuppressWarnings("unchecked") public static List<Element> getElementsByXPath(Document doc,String xpath){ List<Element> properties = null; try{ properties=doc.selectNodes(xpath); }catch(Exception e){ return null; } return properties; } /** * 创建文档的Document对象 * @param file 文件对象 * @return Document对象 */ public static Document getXmlDocment(File file){ if(file == null) return null; SAXReader reader = new SAXReader(); Document doc = null; try{ doc = reader.read(file); }catch(Exception e){ return null; } return doc; } /** * 创建文档的Document对象 * @param filePath 文件所在的路径 * @return Document对象 */ public static Document getXmlDocment(String filePath){ if(StringUtil.isEmpty(filePath)){ return null; } SAXReader reader = new SAXReader(); Document doc = null; try{ doc = reader.read(XMLUtil.class.getClassLoader().getResourceAsStream(filePath)); }catch(Exception e){ return null; } return doc; } /** * 创建文档的Document对象 * @param input 文档流 * @return Document对象 */ public static Document getXmlDocment(InputStream input){ if(input == null){ return null; } SAXReader reader = new SAXReader(); Document doc = null; try{ doc = reader.read(new InputStreamReader(input,"utf-8")); }catch(Exception e){ return null; } return doc; } /** * 创建文档的Document对象 * @param input 文档流 * @return Document对象 */ public static Document getXmlDocment(InputStream input,String charset){ if(input == null){ return null; } SAXReader reader = new SAXReader(); Document doc = null; try{ if(charset == null || charset.equals("")){ charset = "utf-8"; } doc = reader.read(new InputStreamReader(input,charset)); }catch(Exception e){ return null; } return doc; } }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇