求解,用java怎么向xml文档中追加信息

xml文档如下:<?xmlversion="1.0"encoding="GB2312"?><Fiction><wuxianame="武侠"><Booksname="剑断苍... xml文档如下:<?xml version="1.0" encoding="GB2312"?><Fiction><wuxia name="武侠"><Books name="剑断苍穹"><id>1</id><author>九眼久天</author><synopsis>剑,百兵之王,以钢为剑,难断一石,以人为剑,断人命。以地为剑,断山斩海,以天为剑,一剑出,碎天,断苍穹!</synopsis></Books><Books name="剑谷飞云"><id>2</id><author>尉大少爷</author><synopsis>一个孩子坠入深谷,被谷中人所救,山谷中竟是些隐秘高手,孩子长大后初入江湖却陷入了武林浩劫。而后又发生了许许多多的古怪遭遇。</synopsis></Books></wuxia><yanqing name="言情"><Books name="君绝音尘"><id>1</id><author>九月秋菊</author><synopsis>中华上下五千年,江山代有人才出。封建王朝的帝王们更是各领一代风骚。</synopsis></Books><Books name="君绝音尘"><id>2</id><author>凡总不归</author><synopsis>箫声咽,秦淮边,人已变。纵芭蕉不语,相思也不过一瞬间,却不料假做真时也难分辨。黑的发,紫的衫,青丝带在圣音尘的发间纠缠,风飘起,绝世的容貌,衬的他美若神仙。</synopsis></Books></yanqing></Fiction>
我想在武侠或者言情小说类中添加一个Books节点,同时想添加Books节点中的所有信息,我该怎样用java代码实现呢?,在你线等很急
展开
 我来答
程序那点事
2012-07-25 · TA获得超过6140个赞
知道大有可为答主
回答量:3253
采纳率:59%
帮助的人:1340万
展开全部
那只能先读出来 再插入Element
追问
写端代码给我看下,我是用Element插入的,但不行啊
敏杰软件
2012-07-27 · TA获得超过211个赞
知道小有建树答主
回答量:322
采纳率:0%
帮助的人:192万
展开全部
package com.hibut.tool;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import com.sun.org.apache.xml.internal.serialize.OutputFormat;
public class XMLEditor {
private File data;
private org.dom4j.Document doc;
public XMLEditor(String path) {
data = new File(path + "\\data.xml");
this.checkFile();
}
private void checkFile() {
if (!data.exists()) {
doc = DocumentHelper.createDocument();
doc.addComment("xml created at:" + new Date());
Element root = doc.addElement("data");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter writer;
try {
writer = new XMLWriter(new FileOutputStream(data), format);
writer.write(doc);
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
this.getFile();
}
private void getFile() {
SAXReader reader = new SAXReader();
try {
doc = (Document) reader.read(data);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void saveDocument() {
XMLWriter writer = null;
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
try {
writer = new XMLWriter(new FileOutputStream(data), format);
writer.write(doc);
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void addImage(Category category) {
Element elt = null;
List list =
doc
.selectNodes("data/category[@name='"
+ category.getName()
+ "']");
if (list.size() > 0) {
elt = (Element) list.get(0);
Iterator iterator = category.getFiles().iterator();
ImageFile image = null;
while (iterator.hasNext()) {
image = (ImageFile) iterator.next();
Element tempElement = elt.addElement("file");
tempElement.addAttribute("name", image.getName());
tempElement.addAttribute("thumb", image.getThumb());
tempElement.addAttribute("file", image.getFileurl());
tempElement.addCDATA(image.getDescription());
}
this.saveDocument();
return;
}
// 添加的图片的图片分类不存在
elt = doc.getRootElement().addElement("category");// 创建分类
elt.addAttribute("name", category.getName());
elt.addAttribute("thumb", category.getThumb());
elt.addComment("category created at " + (new Date()).toString());
// 添加分类中的图片
if (category.getFiles().size() > 0) {
Iterator ite = category.getFiles().iterator();
while (ite.hasNext()) {
ImageFile image = (ImageFile) ite.next();
Element tempElement = elt.addElement("file");
tempElement.addAttribute("name", image.getName());
tempElement.addAttribute("thumb", image.getThumb());
tempElement.addAttribute("file", image.getFileurl());
tempElement.addCDATA(image.getDescription());
}
}
this.saveDocument();
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-10-14
展开全部

我竟然把里面的文字看完了

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1830aac
2012-07-25 · 超过33用户采纳过TA的回答
知道答主
回答量:137
采纳率:0%
帮助的人:101万
展开全部
用dom4j
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
codeboot
2012-07-26 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:111万
展开全部
Element插入后输出了么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式