<xsl:comment><xsl:apply-templates select="image" /></xsl:comment>
Als Ergebnis:
<!---->
, dass der Code in dem Element xsl: Kommentar ignoriert
The XSLT 1.0 Spec sagt:
Es ist ein Fehler beim Instanziieren des Inhalts von xsl: comment erstellt Knoten andere als Textknoten. Ein XSLT Prozessor kann den Fehler signalisieren; Wenn es nicht den Fehler signalisiert, muss es wiederherstellen, indem Sie die störenden Knoten zusammen mit ihrem Inhalt ignorieren.
Wie zeige ich einen Artikel in den Kommentaren?
Es hängt davon ab, was für "Anzeige" zu verstehen ist: in einem Browser:
<-- <xsl:apply-templates select="image" /> -->
nützlich sein kann, sofern das Ergebnis der <xsl:apply-templates/>
aboveis nur einfachen Text (nicht Markup).
Wenn auf "Anzeige" das Ergebnis zu liefern, wie Text, dann DOE, wenn durch den XSLT-Prozessor erlaubt, uns das gewünschte Ergebnis geben kann:
< - Einiger Text - >
Schließlich, wenn es erforderlich ist, dass was innerhalb des "Kommentars" sollte Markup sein und es sollte als Markup angezeigt werden, dann ist das ziemlich schwierig. In diesem Fall ist eine verwenden hat:
<xsl:output method="text"/>
und soll jede XML lexikalische Einheit mit seiner gewünschten Serialisierung vorhanden ist (d.h. entkommen).
So erstellt der XPath Visualizer seine Ausgabe.
Hier ist eine kleine Veränderung, die die ersten beiden Ansätze zeigt:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<-- Hello, World -->
<xsl:text disable-output-escaping="yes"><--</xsl:text>
Hello,world! --<xsl:text disable-output-escaping="yes">></xsl:text>
</xsl:template>
</xsl:stylesheet>
diese Transformation, wenn produziert auf jedem XML-Dokument (nicht benutzt) angewendet:
<-- Hello, World -->
<--
Hello,world! -->
Beide "Kommentare" können als Kommentare in einem Browser angezeigt werden, während nur die zweite als Kommentar im Freitext dargestellt wird.
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<-- <xsl:apply-templates select="image"/> -->
</xsl:template>
<xsl:template match="image">
<img src="<xsl:value-of select="@src"/>"
width="<xsl:value-of select="@width"/>px"
height="<xsl:value-of select="@height"/>px"/>
</xsl:template>
</xsl:stylesheet>
wenn diese Transformation auf das folgende XML-Dokument angewendet wird:
Der dritte Ansatz (höchstwahrscheinlich, was Sie wollen) unter dargestellt
<image src="http://example.com/yyy.jpg" width="200" height="300"/>
das wollte Ergebnis wird erzeugt:
<--
<img src="http://example.com/yyy.jpg"
width="200px"
height="300px"/>
-->
in einem Browser als:
< - < img src = "http://example.com/yyy.jpg" width = "200px" height = "300px"/> - >
Gute Frage, +1. Sehen Sie meine Antwort für eine detaillierte Erklärung und drei mögliche Ansätze, abhängig von der spezifischen Aufgabe. –
Ich habe gerade meine Antwort bearbeitet und denke, dass sie jetzt die gewünschte Lösung hat. Ist das so? –