1

当我在 eclips env 中传输 xml fie 时出现此错误

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)
4

2 回答 2

0

如果我猜对了,您的代码没有正确引用 XSL 文件。您需要验证您在代码中是否正确引用了 XML 和 XSLT 文件。

或者发布调用转换的 Java 代码(可能是 5 行代码(最大))。您如何引用 XML 和 XSL 源代码在这里很重要..

我发布示例代码供您参考:

这里的 input.xml 和 input.xsl 是位于 bin 文件夹中的文件。.project(或者如果您从 Eclipse IDE 运行它,则在与文件相同的位置)

 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-04T08:48:22.837 回答
0

我现在可以做到了..发生这种情况是因为我在那里添加了新的 JAXP 我删除了它并且它现在工作正常..如果我在我的 xml 文件中调用一个方法得到

14:34:01,696 ERROR [main] JAXPSAXProcessorInvoker  - Cannot find class 'java:com.xslt.date.GetDateNow'.
于 2013-02-04T09:08:38.320 回答