私はXPATH 1.0とXSLT 1.0を使用します。我々は選択でいくつかの特殊記号の無い必要性がなければならないことがわかっている場合は、次のコードCDATAはXSLT 1.0のxslt変換を遅くしますか
<xsl:choose>
<xsl:when test="@name='some'"><![CDATA[one]]></xsl:when>
<xsl:otherwise><![CDATA[two]]></xsl:otherwise>
</xsl:choose>
が
<xsl:choose>
<xsl:when test="@name='some'"><xsl:value-of select="'one'"/></xsl:when>
<xsl:otherwise><xsl:value-of select="'two'"/></xsl:otherwise>
</xsl:choose>
でパフォーマンスした場合の違いを持っている場合、私は疑問に思って? <![CDATA[one]]>
を使用することをお勧めしますか?または、その使用は、xsltのコンパイル時間を減らすか、読みやすいですか?
についての良い例は、私は、パフォーマンスのことは知らないが、私は 'XSL使用することになります:出力リテラルテキストにtext'を。空白がない場合は、リテラルテキストを書いてください。 ' one'となります。 –
なぜCDATA allを使う必要があるのですか?なぜ、 'xsl:when test =" @ name = 'some' "> one'を使用できませんか?パフォーマンスだけでは、XSLTプロセッサはCDATAをまったく処理しません。そのため、XSLTプロセッサは、基本となるXMLパーサによってテキストノードに解析されます。 Xalanが定数 ' = '' one '" /> 'を最適化するのに十分なほどスマートであるかどうかはわかりません。 –
'<'や '&'のような特殊文字を含まないテキストの周りにCDATAセクションを使う必要は決してありません。しかし、処理コストがナノ秒以上になることはまずありません。それはスタイルシートのコンパイル時に一回限りのコストになります。 –