一.Document对象相关
1.读取XML文件,获得document对象.

SAXReader reader = new SAXReader();

Document document = reader.read(new File("input.xml"));
2.解析XML形式的文本,得到document对象.

String text = "<members></members>";

Document document = DocumentHelper.parseText(text);
3.主动创建document对象.

Document document = DocumentHelper.createDocument();

Element root = document.addElement("members");// 创建根节点
二.节点相关
1.获取文档的根节点.

Element rootElm = document.getRootElement();
2.取得某节点的单个子节点.

Element memberElm=root.element("member");// "member"是节点名
3.取得节点的文字

String text=memberElm.getText();也可以用:

String text=root.elementText("name");这个是取得根节点下的name字节点的文字.
4.取得某节点下名为"member"的所有字节点并进行遍历.

List nodes = rootElm.elements("member");

for (Iterator it = nodes.iterator(); it.hasNext();)

{

Element elm = (Element) it.next();

// do something

}
5.对某节点下的所有子节点进行遍历.

for(Iterator it=root.elementIterator();it.hasNext();)

{

Element element = (Element) it.next();

// do something

}
6.在某节点下添加子节点.

Element ageElm = newMemberElm.addElement("age");
7.设置节点文字.

ageElm.setText("29");
8.删除某节点.

parentElm.remove(childElm);// childElm是待删除的节点,parentElm是其父节点
9.添加一个CDATA节点.

Element contentElm = infoElm.addElement("content");

contentElm.addCDATA(diary.getContent());
三.属性相关.
1.取得某节点下的某属性

Element root=document.getRootElement();

Attribute attribute=root.attribute("size");// 属性名name
2.取得属性的文字

String text=attribute.getText();也可以用:

String text2=root.element("name").attributeValue("firstname");这个是取得根节点下name字节点的属性firstname的值.
3.遍历某节点的所有属性

Element root=document.getRootElement();

for(Iterator it=root.attributeIterator();it.hasNext();)

{

Attribute attribute = (Attribute) it.next();

String text=attribute.getText();

System.out.println(text);

}
4.设置某节点的属性和文字.

newMemberElm.addAttribute("name", "sitinspring");
5.设置属性的文字

Attribute attribute=root.attribute("name");

attribute.setText("sitinspring");
6.删除某属性

Attribute attribute=root.attribute("size");// 属性名name

root.remove(attribute);
四.将文档写入XML文件.
1.文档中全为英文,不设置编码,直接写入的形式.

XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));

writer.write(document);

writer.close();
2.文档中含有中文,设置编码格式写入的形式.

OutputFormat format = OutputFormat.createPrettyPrint();

format.setEncoding("GBK"); // 指定XML编码

XMLWriter writer = new XMLWriter(new FileWriter("output.xml"),format);

writer.write(document);

writer.close();
五.字符串与XML的转换
1.将字符串转化为XML

String text = "<members> <member>sitinspring</member> </members>";

Document document = DocumentHelper.parseText(text);
2.将文档或节点的XML转化为字符串.

SAXReader reader = new SAXReader();

Document document = reader.read(new File("input.xml"));

Element root=document.getRootElement();

String docXmlText=document.asXML();

String rootXmlText=root.asXML();

Element memberElm=root.element("member");

String memberXmlText=memberElm.asXML();
* DocumentHelper是一个文档助手类(工具类),它可以完成文档、元素、文本、属性、注释、CDATA、Namespace、XPath的创建,以及利用XPath完成文档的遍历和将文本转换成Document;
parseText完成将xml字符串转换成Doc的功能
Document doc = DocumentHelper.parseText("<root></root>");
createDocument创建一个文档
Document doc = DocumentHelper.createDocument();
如果带参数就会创建一个带有根元素的文档
createElement创建一个元素
Element el = DocumentHelper.createElement("el");
* Document的addElement方法可以给当前文档添加一个子元素
Element root = doc.addElement("catalog");
* addComment方法可以添加一段注释
root.addComment("An XML Catalog");
为root元素添加一段注释
* addProcessingInstruction添加一个标记
root.addProcessingInstruction("target", "instruction");
为root元素添加一个标记
* new BaseElement可以创建一个元素
Element journalEl = new BaseElement("journal");
* addAttribute添加属性
journalEl.addAttribute("title", "XML Zone");
* add添加一个元素
将journalEl元素添加到root元素中
* addElement添加一个元素,并返回当前元素
Element articleEl = journalEl.addElement("article");
给journalEl元素添加一个子元素article
* setText、addText可以设置元素的文本
authorEl.addElement("firstname").setText("Marcello");
authorEl.addElement("lastname").addText("Vitaletti");
* addDocType可以设置文档的DOCTYPE
doc.addDocType("catalog", null,file://c:/Dtds/catalog.dtd);
* asXML可以将文档或元素转换成一段xml字符串
doc.asXML();
root.asXML();
* XMLWriter类可以把文档写入到文件中
output = new XMLWriter(new FileWriter(new File("file/catalog.xml")));
output.write(doc);
output.close();