相信你也知道,其实xsl也是一个标准的XML文件。所以可以提供一个大致思路给你,我自己只是用两个很简单的XML文件来实现了,从数据库里形成DOM文档相信你会吧。
    :)   我的思路是:
       1.    从数据库里生成XML与XSL相对应的两个DOM
       2.    从上面两个DOM分别创建两个源(DOMSource)对象。
       3.    创建结果(DOMResult || StreamResult || SAXResult)对象,用以保存输出     
       4.    创建转换(Transformer)对象。
       5.    调用Transformer的方法执行转换。   我在本机上测试,用文件系统的XML与XSL文件执行成功,只不过这时我用的源对象与结果对象略有不同(StreamSource与StreamResult)   具体可以查阅上述几个类的方法与例子。

解决方案 »

  1.   


    import javax.xml.transform.*;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.stream.StreamSource;
      /**
       * 这个方法将xml通过样式单转换.
       * @param xmlfile 将要被转换的xml文件路径
       * @param xslfile XSL文件的文件路径
       * @return String 转换后的字符串形式存放的html
       */
      public static String ExecuteXSL(String xmlfile, String xslfile) {
        try {
          ByteArrayOutputStream byteRep = new ByteArrayOutputStream();
          TransformerFactory transformerFactory =
              TransformerFactory.newInstance();
          StreamSource source = new StreamSource(xmlfile);
          StreamResult result = new StreamResult(byteRep);
          StreamSource style = new StreamSource(xslfile);
          Transformer transformer =
              transformerFactory.newTransformer(style);
          transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,
                                        "GB2312"); //\u8BBE\u7F6E\u7F16\u7801
          transformer.transform(source, result);
          return byteRep.toString();
        }
        catch (Exception e) {
          e.printStackTrace();
          return null;
        }  }
      

  2.   

    修改后,运行时提示如下错误信息:
    javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: stylesheet 要求属性:version