public static String transform(InputStream streamXML, InputStream streamXSL) {
    try {
      StreamSource sourceXML = new StreamSource(streamXML);
      StreamSource sourceXSL = new StreamSource(streamXSL);
      TransformerFactory factory = TransformerFactory.newInstance();
      Transformer transformer = factory.newTransformer(sourceXSL);
      StringWriter writer = new StringWriter();
      StreamResult result = new StreamResult(writer);
      transformer.transform(sourceXML, result);
      return new String(writer.getBuffer());
    }
    catch (TransformerException ex) {
      return null;
    }
    catch (TransformerFactoryConfigurationError ex) {
      return null;
    }
  }有了这个方法,就是把String 转成 InputStream 了,可以用 new ByteArrayInputStream("".getBytes("UTF-8"));
注意编码一定要与你的xslt相匹配

解决方案 »

  1.   

    我没用过,试试:
    new StreamSource->javax.xml.transform.Transformer.
    transform(source, DomResult)->domResult.getNode();
      

  2.   

    StreamSource sourceXML = new StreamSource(streamXML);
    StreamSource sourceXSL = new StreamSource(streamXSL);
    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer(sourceXSL);
    我遇到的情况是streamXSL是一个String类型的变量。如何能够将它进行处理,使得
    在执行Transformer transformer = factory.newTransformer(sourceXSL);时,不认为sourceXSL参数错误。
    请回复!
      

  3.   

    小虎的方法处理不了import的情况还有XML文件头含有sheet的情况
    我也在找解决方法,没发现