public void writeXMLFile1(String outFile) throws Exception
    {//为解析XML作准备,创建DocumentBuilderFactory实例,指定DocumentBuilder
        javax.xml.parsers.DocumentBuilderFactory dbf = javax.xml.parsers.
            DocumentBuilderFactory.newInstance();
        javax.xml.parsers.DocumentBuilder db = null;
        try
        {
            db = dbf.newDocumentBuilder();
        }
        catch (javax.xml.parsers.ParserConfigurationException pce)
        {
            System.err.println(pce);
            System.exit(1);
        }        org.w3c.dom.Document doc = null;
        doc = db.newDocument();//下面是建立XML文档内容的过程,先建立根元素
        org.w3c.dom.Element root = doc.createElement("rule");
//根元素添加上文档
        doc.appendChild(root);//取field信息的Bean列表
        for (int i = 0; i < 5; i++)
        {
//依次取每个学生的信息//建立""field"元素,添加到根元素
            org.w3c.dom.Element student = doc.createElement("field");
            student.setAttribute("number", "01");
            root.appendChild(student);
//建立"fieldname"元素,添加到学生下面,下同
            org.w3c.dom.Element name = doc.createElement("fieldname");
            student.appendChild(name);
            org.w3c.dom.Text tName = doc.createTextNode("xmlBean.getName()");
            name.appendChild(tName);            org.w3c.dom.Element age = doc.createElement("length");
            student.appendChild(age);
            org.w3c.dom.Text tAge = doc.createTextNode(
                "String.valueOf(xmlBean.getlength())");
            age.appendChild(tAge);            org.w3c.dom.Element phone = doc.createElement("value");
            student.appendChild(phone);
            org.w3c.dom.Text tPhone = doc.createTextNode("xmlBean.getvalue()");
            phone.appendChild(tPhone);
        }
        Debug.printDomTree(doc.getChildNodes().item(0));        outputDom(doc,outFile);
    }
    public void outputDom(org.w3c.dom.Document doc,String outFile) throws Exception
    {
//把XML文档输出到指定的文件
        java.io.FileOutputStream outStream = new java.io.FileOutputStream(
            outFile);
        java.io.OutputStreamWriter outWriter = new java.io.OutputStreamWriter(
            outStream);        javax.xml.transform.TransformerFactory tFactory = javax.xml.transform.TransformerFactory.newInstance();
        javax.xml.transform.Transformer transformer = tFactory.newTransformer();
        transformer.transform(new javax.xml.transform.dom.DOMSource(doc),new javax.xml.transform.stream.StreamResult(outWriter));        // ((XmlDocument) doc).write(outWriter, "GB2312");
        outWriter.close();
        outStream.close();    }

解决方案 »

  1.   

    看看linux下的classpath的顺序,做到和win下一样,你这个错误很有可能是这样的原因
      

  2.   

    楼上的意思是import类的顺序?在两个平台下都是一样的文件啊!因改不是这个原因吧。
      

  3.   

    是的,你看看顺序,我的经验是xerces.jar对import的顺序还是很敏感的
      

  4.   

    错了,不是import的顺序,是在classpath中的顺序
      

  5.   

    哦,我看看去。转型问题
    变量doc不是XmlDocument类型的XmlDocument和Document是不能造型的!
    这是我查看别人的帖子看到的别人指出的,但是我要怎么改呢?
      

  6.   

    如果你在windows下感觉正常,说明代码没有大的问题,可以不考虑!
    还是要看看环境设置