[xsl] Still problems with the XPath-logic from the "Pretty XML Tree Viewer"

Subject: [xsl] Still problems with the XPath-logic from the "Pretty XML Tree Viewer"
From: "Jonny Pony" <jonnypony666@xxxxxxxxxxx>
Date: Fri, 02 Apr 2004 12:22:52 +0000
Hi,

I still have the same problem as before (see: Problem with modified "Pretty XML Tree Viewer"):

Used the tree-view.xsl by Mike J. Brown and Jeni Tennison for my output.

I stripped down the tree-view.xsl to a minimum.

My problem:

I get this as an output:

root
 |
 |___Tabelle DB
       |
       |___Tabelle Nina
       |     |
       |     |___Tabelle Servus
       |     |     |
       |     |     |___Tabelle Chip
       |     |
       |     |___Tabelle Hallo
       |     |     |
       |     |     |___Tabelle Warum
       |     |     |     |
       |     |     |     |___Tabelle Serve
       |     |     |
       |     |     |___Tabelle PC
       |
       |___Tabelle Peddaaa
       |     |
       |     |___Tabelle Horst
       |     |     |
       |     |     |___Tabelle like


But I want this for my output (without the unessessary "|"'s):


root
 |
 |___Tabelle DB
       |
       |___Tabelle Nina
       |     |
       |     |___Tabelle Servus
       |     |     |
       |     |     |___Tabelle Chip
       |     |
       |     |___Tabelle Hallo
       |           |
       |           |___Tabelle Warum
       |           |     |
       |           |     |___Tabelle Serve
       |           |
       |           |___Tabelle PC
       |
       |___Tabelle Peddaaa
             |
             |___Tabelle Horst
                   |
                   |___Tabelle like


My stripped down tree-view.xsl:


<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output method="html" indent="no"/>
<xsl:template match="/">
<html>
<head>
<title>tree-view by Mike J. Brown and Jeni Tennison</title>
</head>
<body>
<h3>Can't find the solution for my problem</h3>
<xsl:apply-templates select="." mode="render"/>
</body>
</html>
</xsl:template>
<xsl:template match="/" mode="render">
root
<br/>
<xsl:apply-templates mode="render"/>
</xsl:template>
<xsl:template match="*" mode="render">
<xsl:call-template name="ascii-art-hierarchy"/>
<br/>
<xsl:call-template name="ascii-art-hierarchy"/>___Tabelle&#160;<xsl:value-of select="local-name()"/>
<br/>
<xsl:apply-templates mode="render"/>
</xsl:template>
<xsl:template name="ascii-art-hierarchy">
<xsl:for-each select="ancestor::*">
<xsl:choose>
<xsl:when test="following-sibling::node()">&#160;&#160;|&#160;&#160;&#160;</xsl:when>
<xsl:otherwise>&#160;&#160;&#160;&#160;&#160;&#160;</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:choose>
<xsl:when test="parent::node() and ../child::node()">&#160;&#160;|</xsl:when>
<xsl:otherwise>&#160;&#160;&#160;</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>


tree-view.xml

<?xml version="1.0" encoding="utf-8"?>
<DB>
	<Nina>
		<Servus>
			<Chip/>
		</Servus>
		<Hallo>
			<Warum>
				<Serve/>
			</Warum>
			<PC/>
		</Hallo>
	</Nina>
	<Peddaaa>
		<Horst>
			<Like/>
		</Horst>
	</Peddaaa>
</DB>



Tried a lot with XPath logic, but I couldn' solve the problem myself.

Anyone got an idea?

Thanks
Jonny

_________________________________________________________________
MSN Messenger - sehen, welche Freunde online sind! http://www.msn.de/messenger Jetzt kostenlos downloaden und mitmachen!


Current Thread