你的错误很奇怪,我从来没有遇到过,你的jdk是什么版本???
jaxp是多少版本的?我的例子:import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;第一种:
/*
try{
File xmlFile = new File("C:\\xmltest\\tiezi.xml");
File xsltFile = new File("C:\\xmltest\\tiezi.xsl");
javax.xml.transform.Source xmlSource =
new javax.xml.transform.stream.StreamSource(xmlFile);
javax.xml.transform.Source xsltSource =
new javax.xml.transform.stream.StreamSource(xsltFile);
javax.xml.transform.Result result =
new javax.xml.transform.stream.StreamResult(System.out); //创建一个TransformerFactory 实例
javax.xml.transform.TransformerFactory transFact =
javax.xml.transform.TransformerFactory.newInstance();
javax.xml.transform.Transformer trans =
transFact.newTransformer(xsltSource);
trans.transform(xmlSource, result); return "转换成功了!!!";
}
catch(Exception e){
System.out.println("出错");
return e.toString()+"出错了:(";
}
*/
第二种:
/* try {
TransformerFactory transformerFactory =
TransformerFactory.newInstance(); StreamSource source = new StreamSource("C:\\xmltest\\tiezi.xml");
StreamResult result = new StreamResult("C:\\xmltest\\result.xml");
StreamSource style = new StreamSource("C:\\xmltest\\tiezi.xsl"); Transformer transformer =
transformerFactory.newTransformer(style); transformer.transform(source, result);
return "OK";
} catch (Exception e) {
e.printStackTrace();
return "Failed";
}
*/
jaxp是多少版本的?我的例子:import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;第一种:
/*
try{
File xmlFile = new File("C:\\xmltest\\tiezi.xml");
File xsltFile = new File("C:\\xmltest\\tiezi.xsl");
javax.xml.transform.Source xmlSource =
new javax.xml.transform.stream.StreamSource(xmlFile);
javax.xml.transform.Source xsltSource =
new javax.xml.transform.stream.StreamSource(xsltFile);
javax.xml.transform.Result result =
new javax.xml.transform.stream.StreamResult(System.out); //创建一个TransformerFactory 实例
javax.xml.transform.TransformerFactory transFact =
javax.xml.transform.TransformerFactory.newInstance();
javax.xml.transform.Transformer trans =
transFact.newTransformer(xsltSource);
trans.transform(xmlSource, result); return "转换成功了!!!";
}
catch(Exception e){
System.out.println("出错");
return e.toString()+"出错了:(";
}
*/
第二种:
/* try {
TransformerFactory transformerFactory =
TransformerFactory.newInstance(); StreamSource source = new StreamSource("C:\\xmltest\\tiezi.xml");
StreamResult result = new StreamResult("C:\\xmltest\\result.xml");
StreamSource style = new StreamSource("C:\\xmltest\\tiezi.xsl"); Transformer transformer =
transformerFactory.newTransformer(style); transformer.transform(source, result);
return "OK";
} catch (Exception e) {
e.printStackTrace();
return "Failed";
}
*/
你好,用你的方法还是出错,
用你的第一个方法是抛出“出错”信息;
用第二个方法抛出:
org.xml.sax.SAXParseException:XML生命可能只能从实体开始是什么原因?
对了。我的程序用的jdom是b9,
b9和b8有很多不一样的地方,
有些方法连返回类型都已经改变了。你换成jdom的beta9版本吧。
是通过一个快捷方式来运行 Tomcat 的另外,我在用main函数运行程序也是一样的结果!
原本的是:
"C:\Documents and Settings\wengsl\「开始」菜单\程序\Apache Tomcat 4.1"
javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:767)
at javasoft.xml_result1.makehtml(xml_result1.java:28)
at javasoft.xml_result1.main(xml_result1.java:45)
Caused by: javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:946)
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:750)
... 2 more
Caused by: javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:942)
... 3 more
Caused by: org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3182)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3170)
at org.apache.crimson.parser.Parser2.maybePI(Parser2.java:966)
at org.apache.crimson.parser.Parser2.maybeMisc(Parser2.java:1092)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:487)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:934)
... 3 more
---------
javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:946)
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:750)
at javasoft.xml_result1.makehtml(xml_result1.java:28)
at javasoft.xml_result1.main(xml_result1.java:45)
Caused by: javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:942)
... 3 more
Caused by: org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3182)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3170)
at org.apache.crimson.parser.Parser2.maybePI(Parser2.java:966)
at org.apache.crimson.parser.Parser2.maybeMisc(Parser2.java:1092)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:487)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:934)
... 3 more
---------
javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:942)
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:750)
at javasoft.xml_result1.makehtml(xml_result1.java:28)
at javasoft.xml_result1.main(xml_result1.java:45)
Caused by: org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3182)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3170)
at org.apache.crimson.parser.Parser2.maybePI(Parser2.java:966)
at org.apache.crimson.parser.Parser2.maybeMisc(Parser2.java:1092)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:487)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:934)
... 3 more
---------
org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3182)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3170)
at org.apache.crimson.parser.Parser2.maybePI(Parser2.java:966)
at org.apache.crimson.parser.Parser2.maybeMisc(Parser2.java:1092)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:487)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:934)
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:750)
at javasoft.xml_result1.makehtml(xml_result1.java:28)
at javasoft.xml_result1.main(xml_result1.java:45)
---------
org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3182) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:934)
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:750)
at javasoft.xml_result1.makehtml(xml_result1.java:28)
at javasoft.xml_result1.main(xml_result1.java:45)
---------
javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:942)
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:750)
at javasoft.xml_result1.makehtml(xml_result1.java:28)
at javasoft.xml_result1.main(xml_result1.java:45)
Caused by: org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。 at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:934)
... 3 more
---------
org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3182)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3170)
at org.apache.crimson.parser.Parser2.maybePI(Parser2.java:966)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:934)
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:750)
at javasoft.xml_result1.makehtml(xml_result1.java:28)
at javasoft.xml_result1.main(xml_result1.java:45)
---------
org.xml.sax.SAXParseException: XML 声明可能只能从实体开始。
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3182)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3170)
at org.apache.crimson.parser.Parser2.maybePI(Parser2.java:966)
at org.apache.crimson.parser.Parser2.maybeMisc(Parser2.java:1092)
(TransformerFactoryImpl.java:934)
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:750)
at javasoft.xml_result1.makehtml(xml_result1.java:28)
at javasoft.xml_result1.main(xml_result1.java:45)