Welches Konzept fehlt mir, dass ich nicht bekomme, was ich erwarte? Warum sollte @field auch leer sein, wenn es das zweite Mal übereinstimmt?xslt Anrufvorlage verhält sich nicht wie erwartet
xsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="text"/>
<!-- sample XSLT snippet -->
<xsl:template match="xml">
<xsl:apply-templates select="*" />
<!-- three nodes selected here -->
<xsl:call-template name="rshandle" />
</xsl:template>
<xsl:template match="foo">
<!-- will be called once -->
<xsl:text>
foo element encountered
</xsl:text>
</xsl:template>
<xsl:template match="*">
<!-- will be called twice -->
<xsl:text>
other element ecountered
</xsl:text>
</xsl:template>
<xsl:template name="rshandle" match="foo">
<!-- will be called once -->
<xsl:value-of select="@field" />
<xsl:text>
oops i did it again!
</xsl:text>
</xsl:template>
</xsl:stylesheet>
xml
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="calltemplatematch.xslt"?>
<!-- sample XML snippet -->
<xml>
<foo field="location"/>
<bar />
<baz />
</xml>
erwartet
other element ecountered
other element ecountered
location
oops i did it again!
Ist
location
oops i did it again!
other element ecountered
other element ecountered
oops i did it again!
Welchen Teil müssen Sie erklären? –
Ich aktualisierte OP, um etwas genauer zu sein. Ich denke, für Anfänger, warum ist @field leer (anstatt Ortszeichenfolge anzuzeigen) auf der zweiten Instanz, die am unteren Rand erscheint? – Rod
Ich fürchte, Sie müssen eine spezifische Frage für jeden Gegenstand stellen, den Sie nicht verstehen. –