首页 > 开发 > Java > 正文

Java操作XML工具类XmlUtil详解

2019-10-21 18:42:30
字体:
来源:转载
供稿:网友

本文实例为大家分享了Java操作XML工具类的具体代码,供大家参考,具体内容如下

一、代码

public class XmlUtil { /** * 将XML文件输出到指定的路径 *  * @param doc * @param fileName * @throws Exception */ public static void outputXml(Document doc, String fileName) throws Exception { TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); DOMSource source = new DOMSource(doc); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); PrintWriter pw = new PrintWriter(new FileOutputStream(fileName)); StreamResult result = new StreamResult(pw); transformer.transform(source, result); System.out.println("生成XML文件成功!"); }  /** * 生成XML *  * @param ip * @return */ public static Document generateXml(String ip) { Document doc = null; Element root = null; try { DocumentBuilderFactory factory = DocumentBuilderFactory  .newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); doc = builder.newDocument(); root = doc.createElement("errorDevices"); doc.appendChild(root); } catch (Exception e) { e.printStackTrace(); return null;// 如果出现异常,则不再往下执行 }  Element element; element = doc.createElement("errorDevice"); element.setAttribute("ip", ip); element.setAttribute("date", StringUtil.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss")); element.setAttribute("status", "1"); root.appendChild(element); return doc; }  /** * 新增Xml节点 *  * @param ip * @param fileName * @return * @throws FileNotFoundException * @throws TransformerException */ public static void toWrite(String filename, String ip) throws FileNotFoundException, TransformerException { String date = StringUtil.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss"); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = null; Document doc = null; try { builder = factory.newDocumentBuilder(); doc = builder.parse(new File(filename)); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } NodeList links = doc.getElementsByTagName("errorDevice"); if (links.getLength() > 0) { for (int i = 0; i < links.getLength(); i++) { Node nd = links.item(i); Node catParent = nd.getParentNode(); Element ele = (Element) nd; String url = ele.getAttribute("ip"); if (url.equals(ip)) {  // ele.setAttribute("date", date);  catParent.removeChild(nd); } } } Element element = doc.createElement("errorDevice"); element.setAttribute("ip", ip); element.setAttribute("date", StringUtil.formatDate(new Date(), "yyyy-MM-dd hh:mm:ss")); element.setAttribute("status", "1"); doc.getDocumentElement().appendChild(element); TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); DOMSource source = new DOMSource(doc); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); PrintWriter pw = new PrintWriter(new FileOutputStream(filename)); StreamResult result = new StreamResult(pw); transformer.transform(source, result); System.out.println("新增XML节点成功!"); }  /** * 读取XML *  * @param filename * @return */ public static List<Map> readXml(String filename){ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = null; Document doc = null; try { builder = factory.newDocumentBuilder(); doc = builder.parse(new File(filename)); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } NodeList links = doc.getElementsByTagName("errorDevice"); List<Map> list = new ArrayList<Map>(); for(int i = 0; i< links.getLength() ; i ++){   Element node = (Element)links.item(i);   Map map = new HashMap();   map.put(node.getAttribute("ip"), node.getAttribute("date"));   list.add(map); } return list; }}

二、演示XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?><errorDevices> <errorDevice date="2017-03-13 12:54:16" ip="20.100.156.42" status="1"/> <errorDevice date="2017-03-13 12:54:56" ip="20.100.156.41" status="1"/></errorDevices>

三、最终效果图

Java,XML,XmlUtil

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持CuoXin错新网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表