Hallo
ich habe hier ein xml Dokument und ein xsl Dokument.
Das xsl Dokument macht in Zeile 12 Probleme. select="substring-after($ntext,``)"/> wenn icch die zwei einfachen Anführungszeichen nach dem Komma in der Klammer weglasse (das komma auch) dann ist das Dokument gültig läßt sich aber nicht transformieren.
Wo liegt hier der Fehler?
MfG
Daniel
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book SYSTEM "docbookx.dtd">
<?xml-stylesheet type="text/xsl" href="docbook.xsl"?>
<!--Dies ist ein DocBook-Dokument-->
<book lang="de">
<title>Ein sehr einfaches Buch</title>
<chapter>
<title>Einführung DocBook</title>
<para>So ist das also</para>
<figure>
<title>An Example Node Tree</title>
<graphic fileref="figures/node-tree.png"/>
</figure>
</chapter>
</book>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xslutput method="html"/>
<xsl:template name="WasTueIch">
<xslaram name="text"/>
<xsl:variable name="ntext" select="normalize-space($text)"/>
<xsl:choose>
<xsl:when test="$ntext">
<xsl:variable name="remainder">
<xsl:call-template name="WasTueIch">
<xsl:with-param name="text" select="substring-after($ntext,``)"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$remainder + 1"/>
</xsl:when>
<xsltherwise>0</xsltherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="/">
<html>
<head>
<title>WasTueIch</title>
</head>
<body>
<xsl:for-each select="//*">
<xsl:variable name="length">
<xsl:call-template name="WasTueIch">
<xsl:with-param name="text" select="."/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="name()"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="$length"/>
<br/>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
ich habe hier ein xml Dokument und ein xsl Dokument.
Das xsl Dokument macht in Zeile 12 Probleme. select="substring-after($ntext,``)"/> wenn icch die zwei einfachen Anführungszeichen nach dem Komma in der Klammer weglasse (das komma auch) dann ist das Dokument gültig läßt sich aber nicht transformieren.
Wo liegt hier der Fehler?
MfG
Daniel
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book SYSTEM "docbookx.dtd">
<?xml-stylesheet type="text/xsl" href="docbook.xsl"?>
<!--Dies ist ein DocBook-Dokument-->
<book lang="de">
<title>Ein sehr einfaches Buch</title>
<chapter>
<title>Einführung DocBook</title>
<para>So ist das also</para>
<figure>
<title>An Example Node Tree</title>
<graphic fileref="figures/node-tree.png"/>
</figure>
</chapter>
</book>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xslutput method="html"/>
<xsl:template name="WasTueIch">
<xslaram name="text"/>
<xsl:variable name="ntext" select="normalize-space($text)"/>
<xsl:choose>
<xsl:when test="$ntext">
<xsl:variable name="remainder">
<xsl:call-template name="WasTueIch">
<xsl:with-param name="text" select="substring-after($ntext,``)"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$remainder + 1"/>
</xsl:when>
<xsltherwise>0</xsltherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="/">
<html>
<head>
<title>WasTueIch</title>
</head>
<body>
<xsl:for-each select="//*">
<xsl:variable name="length">
<xsl:call-template name="WasTueIch">
<xsl:with-param name="text" select="."/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="name()"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="$length"/>
<br/>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>