hallo Paul,
ja, nd es tut das auch.
was genau funktioniert nicht so wie du es willst?
er parst beide tags (Fall1 und Fall2)
ja natürlich: <xsl:template match="person"> trifft ja auf alle person elemente (mit oder ohne kinderelemente.
</input></p>
^^^^^^^^^^^^
das solltest du in der form eher nicht machen.
muss so sein, sonst moniert der xslt-Prozessor das fehlende End-tag
nur in deinem ersten code fehlen die start tags.
Hier nochmal das komplette Sheet:
<xsl:template name="tag">
<xsl:param name="id"/>
<xsl:if test="child::text()">
<p> <xsl:attribute name="class">formfield</xsl:attribute>
<xsl:value-of select="name()"/>xsl:text: </xsl:text>
<input>
<xsl:attribute name="name"><xsl:value-of select="local-name()"/><xsl:value-of select="$id"/></xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="."/></xsl:attribute>
</input></p>
</xsl:if>
</xsl:template>
hm... ich verstehe nicht was daran nicht funktioniert. es wird nur dann etwas geschrieben, wenn der kindknoten ein text ist. das funktioniert bei mir sowohl mit saxon als auch mit dem IE.
------
<?xml version="1.0"?>
<document>
<header>
<name>Ein Dokument</name>
<title>Untertitel</title>
<date>20020518</date>
<author>ich</author>
<author><text></text></author>
<author><text2>222222222222</text2></author>
</header>
<content>
<text>blabla</text>
</content>
</document>
--------------
grüße
thomas
ps: output vom saxon:
--------------------------
<p class="formfield">document: <input name="document1" value="
 
 Ein Dokument
 Untertitel
 20020518
 ich
 
 222222222222
 
 
 blabla
 
"></p>
<p class="formfield">header: <input name="header2" value="
 Ein Dokument
 Untertitel
 20020518
 ich
 
 222222222222
 "></p>
<p class="formfield">name: <input name="name3" value="Ein Dokument"></p>
<p class="formfield">title: <input name="title4" value="Untertitel"></p>
<p class="formfield">date: <input name="date5" value="20020518"></p>
<p class="formfield">author: <input name="author6" value="ich"></p>
<p class="formfield">text2: <input name="text210" value="222222222222"></p>
<p class="formfield">content: <input name="content11" value="
 blabla
 "></p>
<p class="formfield">text: <input name="text12" value="blabla"></p>