前端之家收集整理的这篇文章主要介绍了
操作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; } }
原文链接:https://www.f2er.com/xml/297401.html