﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-bodong_chen-随笔分类-XML</title><link>http://www.blogjava.net/bodong_chen/category/4725.html</link><description>Java Space</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 09:14:58 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 09:14:58 GMT</pubDate><ttl>60</ttl><item><title>Wellformedness and Validity of a XML file</title><link>http://www.blogjava.net/bodong_chen/archive/2006/04/03/38978.html</link><dc:creator>bodong_chen</dc:creator><author>bodong_chen</author><pubDate>Mon, 03 Apr 2006 09:41:00 GMT</pubDate><guid>http://www.blogjava.net/bodong_chen/archive/2006/04/03/38978.html</guid><wfw:comment>http://www.blogjava.net/bodong_chen/comments/38978.html</wfw:comment><comments>http://www.blogjava.net/bodong_chen/archive/2006/04/03/38978.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bodong_chen/comments/commentRss/38978.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bodong_chen/services/trackbacks/38978.html</trackback:ping><description><![CDATA[在一个有关Jdom的讨论中提到：<br /><p><b>Elliotte Rusty Harold</b>: XML documents must be well-formed. There are, 
depending on how you count, anywhere from a hundred to several thousand 
different rules. <u>These "well-formedness" rules are the minimum requirements 
for an XML document.</u> The rules cover things like what characters are allowed 
in element names: The letter <code>'a'</code> is OK. The letter omega is OK. 
The asterisk character is not OK. White space is not OK. The rules say that 
every start-tag has to have a matching end-tag. Elements can nest, but they 
cannot overlap. Processing instructions have the form <code>&lt;</code>, 
<code>?</code>, a target, white space, the data, <code>?</code>, and a 
<code>&gt;</code>. Comments cannot contain a double hyphen. There are 
many such rules governing well-formedness of XML documents.

</p><p><u>
Validity talks about which elements and attributes are allowed where.</u> Well-formedness
only talks about the structure of any XML document, irrespective of 
what the names are. Validity says, we're only going to allow these elements 
with these names in these positions. Validity is not required. Well-formedness 
is.

</p>

JDOM, and for that matter DOM, allows you to create malformed documents. 
They do not check everything they can possibly check. For instance, they do not 
currently check that the text content of a text node does not contain the null 
character, which is completely illegal in an XML document.<br /><br />
这是发生在2003年的讨论:http://www.artima.com/intv/jdom2.html。<br /><br />
现在，使用JDOM可以完成这两件事：<br />
1. 验证XML文件的Wellformedness:<br />

    The <tt>build()</tt> method of SAXBuilder throws 
    an <tt>IOException</tt>
    if an I/O error such as a broken socket prevents the document
    from being completely read. It throws a
    <tt>JDOMException</tt> if the document
    is malformed. This is the generic superclass for most things
    that can go wrong while working with JDOM other than I/O
    errors.<br />
Example:<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.jdom.JDOMException;<br /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.jdom.input.SAXBuilder;<br /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> java.io.IOException;<br /><br /><br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);"> JDOMChecker {<br /><br />  </span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);"> main(String[] args) {<br />  <br />    </span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);"> (args.length </span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">) {<br />      System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Usage: java JDOMChecker URL</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">); <br />      </span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">;<br />    } <br />      <br />    SAXBuilder builder </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> SAXBuilder();<br />     <br />    </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> command line should offer URIs or file names</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">    </span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);"> {<br />      builder.build(args[</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">]);<br />      </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> If there are no well-formedness errors, <br />      </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> then no exception is thrown</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">      System.out.println(args[</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">] </span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> is well-formed.</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />    }<br />    </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> indicates a well-formedness error</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">    </span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);"> (JDOMException e) { <br />      System.out.println(args[</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">] </span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> is not well-formed.</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />      System.out.println(e.getMessage());<br />    }  <br />    </span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);"> (IOException e) { <br />      System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Could not check </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);"> args[</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">]);<br />      System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> because </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);"> e.getMessage());<br />    }  <br />  }<br />}</span></div>2. 验证XML文件的Validity:<br /><tt>SAXBuilder</tt> only checks
  documents for well-formedness, not validity.
  If you want to validate as well, then pass the boolean
  <tt>true</tt> to the
  <tt>SAXBuilder()</tt> constructor.
  Then any validity errors will also cause <tt>JDOMException</tt>s.<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.jdom.JDOMException;<br /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.jdom.input.SAXBuilder;<br /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> java.io.IOException;<br /><br /><br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);"> JDOMValidator {<br /><br />  </span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);"> main(String[] args) {<br />  <br />    </span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);"> (args.length </span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">) {<br />      System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Usage: java JDOMValidator URL</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">); <br />      </span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">;<br />    } <br />      <br />    SAXBuilder builder </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> SAXBuilder(</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);">);<br />                                    </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">  ^^^^<br />                                    </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> Turn on validation<br />     <br />    </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> command line should offer URIs or file names</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">    </span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);"> {<br />      builder.build(args[</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">]);<br />      </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> If there are no well-formedness or validity errors, <br />      </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> then no exception is thrown.</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">      System.out.println(args[</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">] </span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> is valid.</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />    }<br />    </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> indicates a well-formedness or validity error</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">    </span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);"> (JDOMException e) { <br />      System.out.println(args[</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">] </span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> is not valid.</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />      System.out.println(e.getMessage());<br />    }  <br />    </span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);"> (IOException e) { <br />      System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Could not check </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);"> args[</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">]);<br />      System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> because </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);"> e.getMessage());<br />    }  <br />  }<br />}</span></div><br />
参考文献：http://www.ibiblio.org/xml/books/xmljava/chapters/ch14s07.html<br /><img src ="http://www.blogjava.net/bodong_chen/aggbug/38978.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bodong_chen/" target="_blank">bodong_chen</a> 2006-04-03 17:41 <a href="http://www.blogjava.net/bodong_chen/archive/2006/04/03/38978.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用JDOM读写XML的方法</title><link>http://www.blogjava.net/bodong_chen/archive/2005/11/11/19295.html</link><dc:creator>bodong_chen</dc:creator><author>bodong_chen</author><pubDate>Fri, 11 Nov 2005 06:54:00 GMT</pubDate><guid>http://www.blogjava.net/bodong_chen/archive/2005/11/11/19295.html</guid><wfw:comment>http://www.blogjava.net/bodong_chen/comments/19295.html</wfw:comment><comments>http://www.blogjava.net/bodong_chen/archive/2005/11/11/19295.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bodong_chen/comments/commentRss/19295.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bodong_chen/services/trackbacks/19295.html</trackback:ping><description><![CDATA[<P><STRONG>1. 读</STRONG><BR>读XML有多种方法．最基本的方法如下：<BR>&lt;1&gt;用SAXBuilder类构造一个实例，并创建一个文件：<BR>// Build the document with SAX and Xerces, no validation<BR>SAXBuilder builder = new SAXBuilder();<BR>// Create the document<BR>Document doc = builder.build(new File("d:\\data.xml"));<BR>&lt;2&gt;调用Element类中的众多方法获取信息：<BR>一下是在JSP中递归获取XML文件中的元素的基本信息的函数：<BR>public void printChildren(Element parentElement,JspWriter out) throws java.io.IOException<BR>{<BR>&nbsp;&nbsp;&nbsp; List children = parentElement.getChildren();<BR>&nbsp;if(children==null || children.size()==0)<BR>&nbsp;&nbsp;return;<BR>&nbsp;for(int i=0 ; i&lt;children.size(); i++)<BR>&nbsp;{<BR>&nbsp;&nbsp;Element aChild = (Element)children.get(i);<BR>&nbsp;&nbsp;out.print(aChild.getName()+":");<BR>&nbsp;&nbsp;out.print(aChild.getText()+"&lt;br&gt;");<BR>&nbsp;&nbsp;printChildren(aChild,out);<BR>&nbsp;}<BR>}<BR>上例用到了getChildren()，getName()，getText()三个方法。更多的方法参见doc文档。</P>
<P><STRONG>2. 写</STRONG><BR>&lt;1&gt; 创建文档<BR>Document document=new Document(new Element("name of the root Element"));//调用的是new Document(Element rootElement)的构造函数。<BR>说明: <BR>Document类：Document defines behavior for an XML Document，定义了文件级的各种操作。<BR>Element类：Attribute defines behavior for an XML attribute。</P>
<P>&lt;2&gt;逐个逐层写入element<BR>Element chileElement=new Element("name of a child Element");&nbsp; //创建元素 生成JDOM树<BR>document.getRootElement().addContent(chileElement);<BR>说明：<BR>这个过程主要调用了Element类的addContent(Element anElement)方法。</P>
<P>&lt;3&gt;输出成XML文件<BR>XMLOutputter outp = new XMLOutputter(); <BR>outp.output(document, new FileOutputStream("d:\\data.xml")); //输出XML文档<BR>说明：<BR>这种方法得到的XML的格式很不好看，要得到层次明显的XML，可采用如下方法：<BR>a. XMLOutputter outp = new XMLOutputter(Format.getPrettyFormat()); //利用Format类</P>
<P>b. XMLOutputter outputter = new XMLOutputter("", false);//第一个参数代表缩进方式，第二个参数代表是否换行。</P>
<P>c. XMLOutputter outp = new XMLOutputter("",true,"GB2312");//支持中文的带换行和缩进的格式<BR>outp.setTextTrim(true);<BR>outp.output(doc, System.out);</P>
<P><BR>附：读写XML的例程：<BR>1. 读：jdomreadxml.jsp<BR>&lt;<A href="mailto:%@page">%@page</A> contentType="text/html;charset=GBK"%&gt;<BR>&lt;<A href="mailto:%@page">%@page</A> import="java.util.List,java.sql.*,java.io.*,org.jdom.*,org.jdom.output.*,org.jdom.input.*"%&gt;<BR>&lt;%!<BR>public void printChildren(Element parentElement,JspWriter out) throws java.io.IOException<BR>{<BR>&nbsp;&nbsp;&nbsp; List children = parentElement.getChildren();<BR>&nbsp;if(children==null || children.size()==0)<BR>&nbsp;&nbsp;return;<BR>&nbsp;for(int i=0 ; i&lt;children.size(); i++)<BR>&nbsp;{<BR>&nbsp;&nbsp;Element aChild = (Element)children.get(i);<BR>&nbsp;&nbsp;out.print(aChild.getName()+":");<BR>&nbsp;&nbsp;out.print(aChild.getText()+"&lt;br&gt;");<BR>&nbsp;&nbsp;printChildren(aChild,out);<BR>&nbsp;}<BR>}<BR>%&gt;<BR>&lt;HTML&gt; <BR>&lt;HEAD&gt; <BR>&lt;TITLE&gt;用JDOM实现数据库到XML的转换&lt;/TITLE&gt; <BR>&lt;/HEAD&gt; <BR>&lt;BODY&gt;<BR>&lt;%<BR>// Build the document with SAX and Xerces, no validation<BR>SAXBuilder builder = new SAXBuilder();<BR>// Create the document<BR>Document doc = builder.build(new File("d:\\data.xml"));<BR>Element rootElement = doc.getRootElement();<BR>out.print("Elements go here:");<BR>out.print("&lt;br&gt;");<BR>printChildren(rootElement,out);<BR>%&gt;<BR>&lt;/BODY&gt; <BR>&lt;/HTML&gt;</P>
<P>2. 写：（从Access数据库中获取字段并写入）<BR>jdomdbtoxml.jsp<BR>&lt;<A href="mailto:%@page">%@page</A> contentType="text/html;charset=GBK"%&gt;<BR>&lt;<A href="mailto:%@page">%@page</A> import="java.sql.*,java.io.*,org.jdom.*,org.jdom.output.*"%&gt;<BR>&lt;HTML&gt; <BR>&lt;HEAD&gt; <BR>&lt;TITLE&gt;用JDOM实现数据库到XML的转换&lt;/TITLE&gt; <BR>&lt;/HEAD&gt; <BR>&lt;BODY&gt;<BR>&lt;%<BR>Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");<BR>java.sql.Connection conn = java.sql.DriverManager.getConnection("jdbc:odbc:students");<BR>java.sql.Statement stmt = conn.createStatement();<BR>String sql="select * from student";&nbsp;&nbsp; //定义查询的SQL语句<BR>ResultSet rs=stmt.executeQuery(sql);&nbsp;&nbsp; //执行查询<BR>Document document=new Document(new Element("student_list"));//创建文档<BR>java.sql.ResultSetMetaData rsmd = rs.getMetaData();&nbsp; //获取字段名<BR>int numberOfColumns = rsmd.getColumnCount(); //获取字段数<BR>int i=0;<BR>while(rs.next()){ //将查询结果取出<BR>&nbsp;&nbsp;&nbsp; Element element0=new Element("student");&nbsp; //创建元素 生成JDOM树<BR>&nbsp;&nbsp;&nbsp; document.getRootElement().addContent(element0);<BR>&nbsp;&nbsp;&nbsp; for (i=1; i&lt;=numberOfColumns;i++)<BR>&nbsp;{<BR>&nbsp;&nbsp;String date=new String(rs.getString(i)); //代码转换<BR>&nbsp;&nbsp;Element element=new Element(rsmd.getColumnName(i)).setText(date);<BR>&nbsp;&nbsp;element0.addContent(element);<BR>&nbsp;}<BR>}<BR>rs.close();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //关闭结果集<BR>stmt.close();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //关闭statement<BR>conn.close();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //关闭连接</P>
<P>XMLOutputter outp = new XMLOutputter(Format.getPrettyFormat()); <BR>outp.output(document, new FileOutputStream("d:\\data.xml")); //输出XML文档<BR>out.print("XML 文档生成完毕！");<BR>%&gt;<BR>&lt;/BODY&gt; <BR>&lt;/HTML&gt;</P><img src ="http://www.blogjava.net/bodong_chen/aggbug/19295.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bodong_chen/" target="_blank">bodong_chen</a> 2005-11-11 14:54 <a href="http://www.blogjava.net/bodong_chen/archive/2005/11/11/19295.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>