以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XML源码及示例(仅原创和转载) 』  (http://bbs.xml.org.cn/list.asp?boardid=32)
----  对一份xml,增加一个节点,如何实现。  (http://bbs.xml.org.cn/dispbbs.asp?boardid=32&rootid=&id=6758)


--  作者:elij
--  发布时间:4/15/2004 10:54:00 AM

--  对一份xml,增加一个节点,如何实现。
例如有一份xml文件
<xxxx>
  <a>ddd
  </a>
</xxxx>

我想增加一个节点但不想全部解析,这样太耗内存。
只是插入一个
<xxxx>
  <a>ddd
  </a>
  <b>fff
  </b>
</xxxx>
我是用dom4j做解析的。

请教。


--  作者:wedge
--  发布时间:4/15/2004 2:49:00 PM

--  
使用DOM的createelement方法创建一个元素节点和文本节点,再使用DOM的的appendchild方法在根元素的最后一个节点后插入创建的元素节点,把文本节点作为新创建元素的子节点插入,就可以了!
<script language="vbscript">
 set xmldom=createobject("msxml2.domdocument.4.0")
 xmldom.async="false"
                xmldom.load("*.xml")  
               set objnewnode=xmldom.createelement("b)<!--创建元素节点b-->
 xmldom.documentelement.appendchild(objnewnode)
 set objnewtext=xmldom.createtextnode("fff")<!--创建文本节点fff-->
 xmldom.documentelement.lastchild.appendchild(objnewtext)
</script>

--  作者:elij
--  发布时间:4/15/2004 3:11:00 PM

--  
忘了说了我是用java
      String path = "";
      org.dom4j.io.SAXReader read = new org.dom4j.io.SAXReader();
      Document doc = read.read(path);
      Element root = doc.getRootElement();
      //
      把一个子节点加入 root   
      //默认缩进两格,并换行
      OutputFormat format = new OutputFormat("  ", true);
      //设置字符集
      format.setEncoding("gb2312");
      XMLWriter writer = new XMLWriter(out, format);
      writer.write(doc);
      out.flush();


问题是
原来的数据被<a></a>就没有了。
必须把root解析完吗?


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
6,464.844ms