dom4j向Xml指定位置添加数据解决方案

dom4j向Xml指定位置添加数据
本帖最后由 worst_hacker 于 2014-05-30 15:10:03 编辑
SAXReader reader = new SAXReader();
//读进内存
Document document = reader.read("src/book.xml");
//根节点
Element root = document.getRootElement();
Element book = (Element)root.elements("书").get(1);
List list = book.elements();

Element element = DocumentHelper.createElement("出版社");
element.setText("电子工业出版社");
list.add(0,element)

OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format);
writer.write(document);
writer.close();


<?xml version="1.0" encoding="UTF-8"?>

<书架> 
  <书> 
    <书名 name="xxx" 书名="id">雪中悍刀行</书名>  
    <作者 name="fenghuo">烽火戏诸侯</作者>  
    <售价>17.00元</售价> 
  </书>  
</书架>

问题:list.add(0,element)和writer.write(document);这两句,writer.write接收的对象是document,与list没有直接关系把,为什么成功写入了呢?初学,求助。。。
------解决方案--------------------
你这个list是document里面的节点集合的引用,其实他依然是存在document里面的,这是java基础,对象的引用。你list调用了add,就是document里面的节点添加了一个节点,你说有没有关系。