TransformerFactory factory = TransformerFactory.newInstance();
Source source = new StreamSource("Transform.xsl");
Templates stylesheet = xformFactory.newTemplates(source); Source source = new StreamSource("Transformed.xml");
Result result = new StreamResult("Result.xml"); Transformer transformer = stylesheet.newTransformer();
transformer.transform(source, result);
Source source = new StreamSource("Transform.xsl");
Templates stylesheet = xformFactory.newTemplates(source); Source source = new StreamSource("Transformed.xml");
Result result = new StreamResult("Result.xml"); Transformer transformer = stylesheet.newTransformer();
transformer.transform(source, result);
import javax.xml.parsers.*;
import org.w3c.dom.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
if ( xslFile != "") {
try {
StringReader sreader = new StringReader(tpString);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new org.xml.sax.InputSource(sreader));
TransformerFactory tsFactory = TransformerFactory.newInstance();
Transformer trans = tsFactory.newTransformer(new javax.xml.transform.stream.StreamSource(strBasePath+xslFile));
StringWriter sWriter = new StringWriter();//这个可以换成文件输出流
trans.transform(new DOMSource(doc),new StreamResult(sWriter));
rtBytes = sWriter.toString().getBytes();
} catch (Exception e) {
e.printStackTrace();
}
}
public Result transForm(String xmlFile,String xslFile)
{
Result result=null;
try{
TransformerFactory factory = TransformerFactory.newInstance();
Source srcXSL = new StreamSource(xslFile);
Templates stylesheet = factory.newTemplates(srcXSL);
Source srcXML = new StreamSource(xmlFile);
result = new StreamResult("Result.xml");
Transformer transformer = stylesheet.newTransformer();
transformer.transform(srcXML, result);
System.out.println(result.toString());
}
catch(Exception e)
{ e.printStackTrace();
}
return result;
}
出现如下错误:
javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: 字符转换错误:" Malformed UTF-8 char -- is an XML encoding declaration missing?"(行号可能太小)
.....我的xml和xsl文件肯定是没有问题的,因为我用微软的和第三方工具试验过转换,一切正常,两文件内也没有任何汉字,只有英文和数字,肯定不是汉字问题。求救!!!!!
{
try {
StringReader sreader = new StringReader(xmlFile);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new org.xml.sax.InputSource(sreader));
TransformerFactory tsFactory = TransformerFactory.newInstance();
//Transformer trans = tsFactory.newTransformer(new javax.xml.transform.stream.StreamSource(strBasePath+xslFile));;
Transformer trans = tsFactory.newTransformer(new javax.xml.transform.stream.StreamSource(xslFile));;
StringWriter sWriter = new StringWriter();//这个可以换成文件输出流
trans.transform(new DOMSource(doc),new StreamResult(sWriter));
//rtBytes = sWriter.toString().getBytes();
System.out.println(sWriter);
}
catch (Exception e)
{
e.printStackTrace();
}
}
结果发生如下错误:
org.xml.sax.SAXParseException:缺少文件根组建。
如果把
Document doc = dBuilder.parse(new org.xml.sax.InputSource(sreader));
一句改成
Document doc = dBuilder.parse(new org.xml.sax.InputSource(xmlFile));
问题和楼上的一摸一样。晕!!!!!!!!