• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:xalan でエラーが出るんですが。)

xalanでのエラー:XSLTエラーが発生

このQ&Aのポイント
  • xalanを使用すると、XMLファイルの出力に問題があります。
  • 常に同じエラーが発生し、エラーメッセージは"SystemId Unknown; Line -1; Column -1; XSLT Error (javax.xml.transform.TransformerConfigurationException): javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: xsl:stylesheet is not allowed in this position in the stylesheet!"です。
  • 原因を知っている人がいる場合、回答をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

えっと… エラーメッセージを見ると xsl:stylesheet is not allowed in this position in the stylesheet! ("xsl:stylesheet"をこんなとこに書いちゃいかん)とハッキリ言っているわけなので、XSLを見直すのがまず第一じゃないかと思うんですが。 以下の環境でちょっと試してみた限りでは、"xsl:stylesheet"が2箇所記述されているような不正なXSLでないと上記エラーは出せませんでした(^^; OS:Windows98SP1 Java:1.4.0_01 Runtime Xalan:2.4.D1 (但しjarをlib/endorsedにcopy) 実行方法:コマンドラインよりjava org.apache.xalan.xslt.Processを起動 (何故 "SystemId Unknown; Line -1; Column -1;" なのかは判りませんが...。コマンドラインからだとXSLファイル名と行位置、桁位置がちゃんと表示されるので。) 環境とか実行方法とかXSLは間違ってないぞ~とかIEならちゃんと表示できるのに~とかXalan付属のサンプルはOKなのに~とかもっと書いた方がいいですよ(^^;。このエラーメッセージだけだと「XSLが間違ってます」としか答えられないので...。

kamkamkam3
質問者

お礼

どうも、ご回答ありがとうございます。環境としては、 OS:WindowsXP HomeEdition Java: j2sdk1.4.0_01 Xalan: 2.2.D11 実行方法:コマンドラインから、以下を記述して起動。 D:\>java -Duser.language=en org.apache.xalan.xslt.Process -in Sample1.xml -xsl S ample6-5.xsl -out result.xml です。この辺は、本に忠実にやったので、間違いはないと思います。 たまに、成功するファイルもあるので、やはりXSLファイルがおかしいのでしょうか?XMLファイルは同じものを使い、XSLファイルを変えて色々試しています。 ほとんどの、XSLファイルで、例のエラーばかり出るのです。一応XSLファイルも載せておきます。 <?xml version="1.0" encoding="Shift_JIS" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" encoding="Shift_JIS" /> <!-- 文書 --> <xsl:template match="/"> <root> <xsl:apply-templates select="cars/car" /> </root> </xsl:template> <!-- 車 --> <xsl:template match="car"> <car> <num> <xsl:number /> </num> <xsl:apply-templates select="name" /> <xsl:apply-templates select="price" /> </car> </xsl:template> <!-- 品名 --> <xsl:template match="name"> <xsl:copy-of select="."/> </xsl:template> <!-- 価格 --> <xsl:template match="price"> <xsl:copy-of select="."/> </xsl:template> <xsl:stylesheet> もし分かったら、ご回答ください。どうも、長々と読んでいただき、ありがとうございました。 です。

その他の回答 (1)

回答No.2

最後の行が <xsl:stylesheet> になってます。正しくは </xsl:stylesheet> ですよね(^^)。

kamkamkam3
質問者

お礼

ご回答ありがとうございます。 すみません。。。こんな事なんて。。。情けないです。どうもくだらない質問にお付き合いいただきありがとうございます。おかげさまで、見事できました。なにぶん慣れないものですから、少しの間違いが、えらく大変な間違いに見えてしまい、焦っていたんです。 あと、他のXSLファイルに関しても、InternetExplorerで開くとうまく開けないんで僕のタイプミスだと思います。しらみつぶしに、ミスを探してきます。 やはり、何か間違いがあると、あのエラーが出てしまうんですね。確か、以前のxalanは、エラー行もちゃんと出たと思うんですが。同じエラーばかり出るので、設定やら機械の故障かな?と心配していたのです。 j2sdk1.4.0からのxalanは、まだ不備があって、完璧にはいかないらしいです。月刊「Java World」に書いてありました。 endorsedにフォルダをつくって新しいxalanを入れているんですね。私もやり方を読んだんですが、サッパリうまくいきませんでした。うらやましいです。 何はともあれ、問題が解決できてよかったです。これで、また勉強を進められます。とても助かりました。どうもありがとうございました。

関連するQ&A