欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java实现XML增加元素操作简单示例

程序员文章站 2024-03-07 10:24:39
本文实例讲述了java实现xml增加元素操作。分享给大家供大家参考,具体如下: package day01; import java.io.*; import...

本文实例讲述了java实现xml增加元素操作。分享给大家供大家参考,具体如下:

package day01;
import java.io.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.domsource;
import javax.xml.transform.stream.streamresult;
import org.w3c.dom.*;
public class cruddemo {
  /*public void addelement() throws exception{
    documentbuilderfactory factory = documentbuilderfactory.newinstance();
    documentbuilder builder = factory.newdocumentbuilder();
    document doc = builder.parse(new file ("src/day01/book.xml"));
    element newele = doc.createelement("作者");
    newele.settextcontent("zc");
    node nod = doc.getelementsbytagname("书").item(0);
    nod.appendchild(newele);
    source sour = new domsource(doc);
    result result = new streamresult (new fileoutputstream("src/day01/book.xml"));
    write (sour, result);
  }*/
  public void addelement2() throws exception{
    documentbuilderfactory factory = documentbuilderfactory.newinstance(); //建立工厂
    documentbuilder builder = factory.newdocumentbuilder(); //拿到builder
    document doc = builder.parse(new file ("src/day01/book.xml")); //获得document,这是终极目的
    element newele = doc.createelement("作者");// 创建新元素/标签
    newele.settextcontent("zc"); //给元素设置内容 <作者>zc</作者>
    node nod = doc.getelementsbytagname("书名").item(0); //通过nodelist的item()方法获得具体节点
    /**
     * 在具体节点插入元素用 节点.insertbefore方法
     * 第一个参数是要插入的新节点,第二个是插入的位置
     */
    nod.insertbefore(newele, doc.getelementsbytagname("书名").item(0));
    /**
     * domsource(node n)
     * 注意 element是node的一个子类,所以可以把doc放入构造函数
     *
     *
     */
    source sour = new domsource(doc);
    result result = new streamresult (new fileoutputstream("src/day01/book.xml"));
    write (sour, result);
  }
  public void write(source source,result result) {
    transformerfactory tffactory = transformerfactory.newinstance();
    transformer tr;
    try {
      tr = tffactory.newtransformer();
      tr.transform(source, result);
    } catch (transformerconfigurationexception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    } catch (transformerexception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    }
  }
  public static void main(string[] args) throws exception {
    cruddemo cr = new cruddemo();
    cr.addelement2();
  }
}

修改前的xml:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<书架>
  <书>
    <书名>thinking in java</书名>
    <作者>eric</作者>
    <售价>$34</售价>
  </书>
</书架>

修改后的xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<书架>
  <书>
    <作者>zc</作者>
    <书名>thinking in java</书名>
    <作者>eric</作者>
    <售价>$34</售价>
  </书>
</书架>

ps:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线xml/json互相转换工具:

在线格式化xml/在线压缩xml:

xml在线压缩/格式化工具:

xml代码在线格式化美化工具:

希望本文所述对大家java程序设计有所帮助。