折腾了一整天都没搞懂为什么粘贴人家的Dom4jReader的例子在自己的jbuilder2005里面就是行不通。后来终于发现问题所在了。
由于在SF上下载的dom4j-1.6.1.jar(下载http://dom4j.org)是不含SAX 与 DOM 接口的,所以下载该版本必须结合jaxen-1.1-beta-6.jar一起使用。还是建议大家下载dom4j-1.6.1.zip比较全,解压之后把里面的dom4j-1.6.1.jar添加到classpath里,顺便把lib里面的jaxen-1.1-beta-6.jar也一起添加进取。如果用jb,就把以上两个包文件添加到工程的Required Liberaries估计这样运行起来就不会有什么问题了。
检测:创建XmlDom4J.java,实现创建catalog.xml
/**
* dom4j 是一种解析 XML 文档的开放源代码 XML 框架。
* dom4j API 包含一个解析 XML 文档的工具。
*/
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
import java.io.*;
import org.dom4j.io.OutputFormat;
import java.util.List;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.io.SAXReader;
public class XmlDom4J {
public void generateDocument() {
Document document = DocumentHelper.createDocument(); //DocumentHelper 是生成 XML 文档节点的 dom4j API 工厂类。
Element catalogElement = document.addElement("catalog");//addElement() 用于向 XML 文档中增加元素。
catalogElement.addComment("An XML Catalog");//addComment() 方法添加注释“An XML catalog”。
catalogElement.addProcessingInstruction("target", "text");//addProcessingInstruction() 方法增加一个处理指令。
Element journalElement = catalogElement.addElement("journal");//在 catalog 元素中使用 addElement() 方法增加 journal 元素。
journalElement.addAttribute("title", "XML Zone");
journalElement.addAttribute("publisher", "IBM developerWorks");
Element articleElement = journalElement.addElement("article");
articleElement.addAttribute("level", "Intermediate");
articleElement.addAttribute("date", "December-2001");
Element titleElement = articleElement.addElement("title");
titleElement.setText("Java configuration with XML Schema");//使用 setText() 方法设置 article 元素的文本。
Element authorElement = articleElement.addElement("author");
Element firstNameElement = authorElement.addElement("firstname");
firstNameElement.setText("Marcello");
Element lastNameElement = authorElement.addElement("lastname");
lastNameElement.setText("Vitaletti");
document.addDocType("catalog",
null, "file://D:/AppletEditor/Dtds/catalog.dtd");//使用 addDocType() 方法添加文档类型说明。
try {
// xml 标准格式,保存到文件
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter output = new XMLWriter(new FileWriter("D:/AppletEditor/xml/catalog.xml"), format);
output.write(document);
output.close();
// 紧凑的格式,System.out显示(
format = OutputFormat.createCompactFormat();
output = new XMLWriter(System.out, format);
System.out.println("/r/n------------------Start------------------");
output.write(document);
System.out.println("/r/n-------------------End-------------------");
output.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
public static void main(String[] argv) {
XmlDom4J dom4j = new XmlDom4J();
dom4j.generateDocument();
}
}
catalog.xml
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<!--An XML Catalog--><?target text?>
<journal title="XML Zone" publisher="IBM developerWorks">
<article level="Intermediate" date="December-2001">
<title>Java configuration with XML Schema</title>
<author>
<firstname>Marcello</firstname>
<lastname>Vitaletti</lastname>
</author>
</article>
</journal>
</catalog>
注:document.addDocType("catalog",null, "")如果要添加xml文档说明,最好把dtd文件先建好,不然系统会抱错找不到DTD声明的。本人感觉dtd有些麻烦,不过想要标准的编程步骤还是不可缺少的!!!!