substring-after Not Working in apply-templates

Here should go questions about transforming XML with XSLT and FOP.
Guest

substring-after Not Working in apply-templates

Post by Guest »

Hi All,
I am trying this statement:

<xsl:apply-templates select="substring-after(@rdf:about,'#')">
</xsl:apply-templates>

But this gives an error saying:
MyXSLFile.xsl:39: value of expression cannot be converted to a node-set

Can anyone guide me how can I write the result of this substring-after thing into an XML file. Do I have to use any other tag rather than xsl:apply-templates or what?

Btw, I tried using following code:
<xsl:for-each select="@rdf:about">
<xsl:value-of select="substring-after(@about,'#')"/>
</xsl:for-each>

which (atleast) generates the XML file, but the file does not show any substring extracted.

Please Help...
george
Site Admin
Posts: 2095
Joined: Thu Jan 09, 2003 2:58 pm

Post by george »

Hi,

I guess you should start with an XML tutorial like this one for instance:
http://www.zvon.org/xxl/XSLTutorial/Output/index.html

Proabably something like

<xsl:template match="*">
<xsl:if test="@rdf:about">
<xsl:value-of select="substring-after(@rdf:about,'#')"/>
</xsl:if>
<xsl:apply-templates/>
</xsl:template>

will give you some results but I cannot tell that for sure without knowing how your input document looks like.

Best Regards,
George
Post Reply