1

Eclipse環境で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)
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 に答える