2016-09-08 11 views
0

単純なXMLノードを作成する別のテンプレートをテンプレート呼び出しで使用しようとしています。私の本当の仕事は難しいですが、私は何かを働かせるために単純化しました。XSLT 1.0テンプレート要素を空に戻す

注:私はここでいくつかの例を見てきましたが、私は同じ結果を得ていません。私が間違っていることはわかりません。

私はこれを持つの終わりにしたい:

<keyword>abc-company.com</keyword> 
<keyword>test</keyword> 
<keyword>ABC Company</keyword> 

が、私はこれで終わる続ける:

<keyword>abc-company.com</keyword> 
<keyword/> 
<keyword>ABC Company</keyword> 

私は意図的にプレーンな文字列値を返すのですが、結局私が渡したいです値を変更して要素の値を返しますが、この例では単純化しました。

<xsl:template name="keywords"> 
    <xsl:param name="metas_branding"/> 
    <xsl:param name="metas_keywords"/> 
    <xsl:param name="ad_branding"/> 
    <keyword><xsl:value-of select="$metas_branding"/></keyword> 
    <xsl:call-template name="csvToNodes"> 
      <xsl:with-param name="csvString" select="$metas_keywords"/> 
    </xsl:call-template> 
    <keyword><xsl:value-of select="$ad_branding"/></keyword> 
</xsl:template> 

<xsl:template name="csvToNodes"> 
    <xsl:param name="csvString"/> 
    <xsl:element name="'keyword'"> 
      <xsl:value-of select="test"/> 
    </xsl:element> 
</xsl:template> 
+0

常に**再現性**例を投稿してください - [MCVE]を参照してください。 –

+0

特に、入力文書を確認する必要があります。 –

+0

私はあなたの質問を、私がそれに答えたときのものに転がしました。あなたの根本的に異なる要件で新しい質問を始めてください。 XML入力の例と、** complete **スタイルシートを含めて、そのまま実行可能であることを確認してください。何度も尋ねられているにもかかわらず、ここで提供できなかったものが含まれています。 –

答えて

0
<xsl:value-of select="test"/> 

要素名test、現在の要素の子を探しています。私は、あなたのXMLにはそのような要素がない(あるいはそれはありますが、空です)ので、返される値は空の文字列です。

おそらく、書くためのもの:

<xsl:value-of select="'test'"/> 
+0

それは助けましたが、それはまだそれがすべきものではありません。私はその変化の結果としてこれを得ます。 'code' abc-company.com テスト ABC社 ' code' –

+0

私はそうは思いません。それはあなたが前に得た結果ですね。だから、どうしてそれが助けになりましたか?私はあなたが正しい結果を得たと思うし、あなたを元に戻すためにいくつかの変更を加えました。 –

+0

申し訳ありませんが、私はまだmini-markdownを理解していません。違いは、キーワード要素がまだ値なしで閉じられており、テスト値がその後に置かれている点です。 –

関連する問題