当前位置: 移动技术网 > IT编程>开发语言>Java > java实现XML增加元素操作简单示例

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

本文实例讲述了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程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网