| |
用JDom轻松整合Java和XML |
|
时间: 2004-02-13 来自:论坛 |
 |
|
输出XML文档
你可以用几种不同的标准输出工具输出一个XML文档。org.Jdom.output.XMLOutputter也许是最常用方法。它将xml文档写入一个特定的OutputStream.
SAXOutputter工具是另一个选择。它产生基于Jdom xml文档的sax事件,你可以把这些送到等待这些sax事件的应用程序那里。相同的方式,DOMOutputter产生一个dom文档,这样你就可以把它送给可以接收dom文档的应用程序。输出xml文档的代码看起来象下边的样子:
XMLOutputter outputter = new XMLOutputter(); outputter.output(doc, System.out); | XMLOutputter用参数定制输出的格式。第一个参数是行缩进的格式;第二个参数是你是否想另起一行。因为机器到机器的原因,为了速度考虑你可以放弃行缩进和另起新行。
XMLOutputter outputter = new XMLOutputter("", false); outputter.output(doc, System.out); | (译注:这样的话自己看起来会很不好看,而且每一次重新写入的时候都会使这个xml文件变大,所以我建议还是要缩进和另起一行,支持中文的带换行和缩进的格式如下:
XMLOutputter outp = new XMLOutputter(“”,true,"GB2312");
outp.setTextTrim(true);
outp.output(doc, System.out); | 可以参见以前我写的Jdom的文章http://www.csdn.net/Develop/read_article.asp?id=20720)
下面是读入一个xml文档,并把它又输出的例子:
import java.io.*; import org.Jdom.*; import org.Jdom.input.*; import org.Jdom.output.*; public class PrettyPrinter { public static void main(String[] args) { // Assume filename argument String filename = args[0]; try { // Build the document with SAX and Xerces, no validation SAXBuilder builder = new SAXBuilder(); // Create the document Document doc = builder.build(new File(filename)); // Output the document, use standard formatter XMLOutputter fmt = new XMLOutputter(); fmt.output(doc, System.out); } catch (Exception e) { e.printStackTrace(); } } } | 读取文档类型
现在,让我们来看一下怎么读取文档的详细内容。许多XML文档都有的一个东西是文档类型,在Jdom中用DocType类来描述。万一你不是XML方面的专家(嘿,不用灰心,你就是我们所要面向的听众),一个文档类型的声明看起来象下边的样子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | DOCTYPE后边的第一个词揭示文档被强制类型的名字,PUBLIC后边的词是文档类型的公共属性,最后一个词是文档类型的系统属性。文档属性可以上通过文档的getDocType()方法获得,DocType类提供了一组获得文档类型声明的方法。
DocType docType = doc.getDocType(); System.out.println("Element: " + docType.getElementName()); System.out.println("Public ID: " + docType.getPublicID()); System.out.println("System ID: " + docType.getSystemID()); |
|
|
|
|
|
|
|
|