当我在eclips环境中传输xml文件时,我得到这个错误。
12:29:58,946 FATAL [main] Main - No embedded stylesheet instruction for file: file:/C:/ANU_DOC/MyWS/xslt/file1/source.xml
org.eclipse.wst.xsl.jaxp.debug.invoker.TransformationException: No embedded stylesheet instruction for file: file:/C:/ANU_DOC/MyWS/xslt/file1/source.xml
at org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.transform(JAXPSAXProcessorInvoker.java:225)
at org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.transform(JAXPSAXProcessorInvoker.java:186)发布于 2013-02-04 16:48:23
如果我没猜错的话,您的代码没有正确引用XSL文件。您需要验证在代码中是否正确引用了XML和XSLT文件。
或者post调用转换的Java代码(可能是5行代码(最多))。如何引用XML和XSL源代码在这里很重要。
我发布了示例代码供您参考:
其中,input.xml和input.xsl是位于bin文件夹中的文件。(或者,如果从Eclipse IDE运行,则位于与.project文件相同的位置)
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource(new File("input.xslt")));
Source text = new StreamSource(new File("input.xml"));
transformer.transform(text, new StreamResult(new File("output.xml")));示例代码2:(这里的XSL代码是作为字符串传递的)
TransformerFactory factory = TransformerFactory.newInstance();
String sxslt = "<?xml version=\"1.0\"?><xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"> <xsl:output indent=\"no\" /> <xsl:template match=\"@*|node()\"> <xsl:copy> <xsl:apply-templates select=\"@*|node()\"/> </xsl:copy> </xsl:template></xsl:stylesheet>";
StringReader xslReader = new StringReader(sxslt);
Source xslt = new StreamSource(xslReader);
Transformer transformer = factory.newTransformer(xslt);
Source text = new StreamSource(new File("input.xml"));
transformer.transform(text, new StreamResult(new File("output.xml")));发布于 2013-02-04 17:08:38
我现在能够做到这一点..这是因为我在那里添加了新的JAXP,我删除了它,现在它工作得很好。如果我在xml文件中调用一个方法,会得到
14:34:01,696 ERROR [main] JAXPSAXProcessorInvoker - Cannot find class 'java:com.xslt.date.GetDateNow'.https://stackoverflow.com/questions/14681927
复制相似问题