Ich benutze XPATH 1.0 und XSLT 1.0. Ich frage mich, ob der folgende CodeVerlangsamt der CDATA die XSLT-Transformation in XSLT 1.0
<xsl:choose>
<xsl:when test="@name='some'"><![CDATA[one]]></xsl:when>
<xsl:otherwise><![CDATA[two]]></xsl:otherwise>
</xsl:choose>
einen Unterschied bei der Leistung hat mit
<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>
wenn wir, dass es wissen für einige spezielle Symbole in der Auswahl kein notwendig sein muss? Ist es eine gute Praxis, <![CDATA[one]]>
zu verwenden. Oder seine Verwendung verringern die xslt Kompilierzeit, oder es ist einfach zu lesen ??
Ich weiß nicht, über die Leistung, aber ich würde verwenden 'xsl: Text' zur Ausgabe wörtlichen Text. Oder, wenn Sie keine Leerzeichen haben, um sich Sorgen zu machen, schreiben Sie einfach den wörtlichen Text, z. ' one'. –
Warum brauchen Sie eine CDATA alle, warum können Sie 'xsl nicht verwenden: wenn test =" @ name = 'some' "> one'? Was die Leistung anbetrifft, messen Sie einfach, dass der XSLT-Prozessor überhaupt nicht mit dem CDATA arbeitet, sondern dass er ohnehin vom zugrunde liegenden XML-Parser in einen Textknoten geparst wurde. Ob Xalan schlau genug ist, um eine Konstante zu optimieren:> Ich weiß es nicht. –
Es ist niemals notwendig, CDATA-Abschnitte um Text zu verwenden, der keine Sonderzeichen wie '<' und '&' enthält. Aber es ist unwahrscheinlich, dass mehr als ein oder zwei Nanosekunden Verarbeitungsaufwand entstehen, und das sind einmalige Kosten bei der Stylesheet-Erstellung. –