2016-11-18 4 views
-1

1 xslファイルに2つの出力方法を使用できますか? 私はこの
のhtmlフォルダ<達成したかった - その中のすべてのhtmlファイルを
ルート(メインフォルダ)< - xmlファイル

マイ以下のコードのみxmlファイル、作成していないのhtmlフォルダのフォルダやhtmlファイルXSLT - 1 xlstファイルの複数形式出力

を生成以下

はXLSTです:

<xsl:output method="text"/> 
<xsl:output method="html" indent="yes" name="html"/> 

<xsl:variable name="filename" select="concat('chapter1', '.html')"/> 
<xsl:value-of select="$filename"/> 
<xsl:result-document href="main-folder/html-folder/{$filename}" format="html"> 


<xsl:output method="text"/> 
<xsl:output method="xml" indent="yes" name="xml"/> 
<xsl:result-document href="mainfolder/index.xml" method="xml" encoding="UTF-8" indent="yes"> 
+1

xsl:result-documentは、xsl:outputの兄弟としては表示されません。明らかにあなたのコードにバグがあります。あなたが慎重に削除して、あなたがそれを見つける手助けをすることはできません。 –

答えて

0

はい、それは可能ですが、これらのルールに従うことを確認するために最初にあなたのXSLを確認してください。

  • 常に各ノードを適切に閉じます。
  • 出力方法は、stylesheet/result-documentごとに1回だけ定義する必要があります。
  • result-documentを使用する場合、同じファイルを上書きしないでください。

結果、文書の出力方法(だけでなく、formatindent)は、適切な属性を使用して設定する必要があります。

<xsl:result-document method="xml" format="" indent="yes" ...> 

は次のようになりますあなたのXSLを修正:

<xsl:variable name="filename" select="concat('chapter1', '.html')"/> 

<xsl:result-document href="main-folder/html-folder/{$filename}" method="html" indent="yes"> 
    ... 
</xsl:result-document> 

<xsl:result-document href="mainfolder/index.xml" method="xml" encoding="UTF-8" indent="yes"> 
    ... 
</xsl:result-document> 

result-documentの公式ドキュメント。

+0

お返事ありがとうございます。 まだ動作しません。どこかで紛争が起きることはありますか? 元々は2つの別々のxsltファイルです。別々に実行すると、出力が正常に出力されました。コードを1つのxsltファイルにまとめると、下のコードがxmlファイルを生成するように見えますが、サブフォルダとhtmlファイルを作成するためのトップコードは機能しません。 – techishawn

+0

OK。その場合、XSLを組み合わせて投稿できますか? (または、少なくとも、問題を確認するための最小限の部分)。 –

関連する問題