评论

收藏

[Java] Java操作XML工具类XmlUtil详解

编程语言 编程语言 发布于:2021-10-06 15:02 | 阅读数:216 | 评论:0

这篇文章主要为大家详细介绍了Java操作XML工具类XmlUtil的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了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>
三、最终效果图
DSC0000.jpg

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持CodeAE代码之家
原文链接:https://blog.csdn.net/u010823625/article/details/61920159

关注下面的标签,发现更多相似文章