Ich versuche etwas zu tun, das scheint, wie es sehr einfach sein sollte, aber ich kann es nicht funktionieren, und ich kann nicht scheinen, irgendwelche Beispiele zu finden involviere nicht viele irrelevante Dinge. Ich möchte den Textinhalt eines bestimmten XML-Tags auf einen bestimmten Wert aktualisieren (der als Parameter übergeben wird. Diese XSLT wird von ant verwendet). Ein einfaches Beispiel:Aktualisieren Sie den Text eines Elements mit XSLT basierend auf Param
Ich möchte
<foo>
<bar>
baz
</bar>
</foo>
Um
<foo>
<bar>
something different
</bar>
</foo>
Dies ist das Stylesheet-Transformation ist, dass ich versucht, die die Tags in nur Ergebnisse, kein Text an allen
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- identity transformation, to keep everything unchanged except for the stuff we want to change -->
<!-- Whenever you match any node or any attribute -->
<xsl:template match="node()|@*">
<!-- Copy the current node -->
<xsl:copy>
<!-- Including any attributes it has and any child nodes -->
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- change the text of the bar node, in the real template the value won't be specified inline -->
<xsl:template match="/foo/bar/">
<xsl:param name="baz" value="something different"/>
<xsl:value-of select="$baz"/>
</xsl:template>
</xsl:stylesheet>
Vielen Dank im Voraus!
Ich habe versucht, dass (beide in meinem etwas komplexeres Beispiel, und auf [ das Basisbeispiel] (http://www.xsltcake.com/slices/Y8fojh/4)), aber scheint nicht zu funktionieren? Ich bekomme ein leeres Foo-Tag. Habe ich etwas falsch gemacht? – user1126518
Sean, verursacht der zur Verfügung gestellte "XSLT-Code" Kompilierzeit Fehler mit jedem kompatiblen XSLT 1.0-Prozessor. –