DOM创建节点
Java文件为:(Windows XP,IE7.0)
/*01*/import org.w3c.dom.*;
/*02*/import org.xml.sax.*;
/*03*/import javax.xml.parsers.*;
/*04*/import java.io.*;
/*05*/import javax.xml.transform.*;
/*06*/import javax.xml.transform.dom.*;
/*07*/import javax.xml.transform.stream.*;
/*08*/public class OutDemo {
/*09*/ public static void main(String args[]) {
/*10*/ try {
/*11*/ String path = "9-5.xml";
/*12*/ DocumentBuilderFactory domFactory =
/*13*/ DocumentBuilderFactory.newInstance();
/*14*/ domFactory.setValidating(false);
/*15*/ domFactory.setNamespaceAware(true);
/*16*/ DocumentBuilder domBuilder = domFactory.newDocumentBuilder();
/*17*/ Document document = domBuilder.parse(new File(path));
/*18*/ //write document into file
/*19*/ TransformerFactory transf=TransformerFactory.newInstance();
/*20*/ Transformer trans=transf.newTransformer();
/*21*/ Source in=new DOMSource(document);
/*22*/ Result out=new StreamResult(new FileOutputStream("result.xml"));
/*23*/ trans.transform(in,out);
/*24*/ }
/*25*/ catch (Exception e)
/*26*/ {
/*27*/ e.printStackTrace();
/*28*/ }
/*29*/ }
/*30*/}
9-5.xml文件为:
<?xml version="1.0" encoding="gb2312"?>
<books>
<!--这是一个数据文件-->
<![CDATA[
<book>
<name>xml应用</name>
<author>list1</author>
<price>55.00</price>
</book>
]]>
<book id="1234">
<name>asp</name>
<
<price>123.3</price>
这是一本好书
</book>
</books>
问题:
生成的result.xml文件没有进行任何操作的前提下,
用浏览器打开会出现错误:
注释未关闭。处理资源 'file:///D:/java/result.xml' 时出错。第 2 行,位置: 5
<!--杩欐槸涓€涓暟鎹枃浠?->
----^
而且,用写字板打开时出现乱码,而用记事本打开时则正常。
用记事本打开随便修改一个地方再还原(如在某一个地方加一个空格再删除之),
关闭时保存这种修改。
则出现错误:
不支持从当前编码到指定编码的切换。处理资源 'file:///D:/java/result.xml' 时出错。第 1 行,位置: 56
<?xml version="1.0" encoding="GB2312" standalone="no"?><books>
------------------------------------------------...
但写字板下没有乱码了(记事本下仍然正常)。
而用写字板进行这种修改时(保存)错误不变,但在写字板和记事本下均有乱码!
用记事本打开进行这种修改,保存,此时在写字板下没有乱码了,再用写字板打开进行这种修改,保存,
则用浏览器可以正常显示。