xsl-list
[Top] [All Lists]

XPath problem

2004-04-28 02:22:18
Hi,

I still have a small problem with my modified "Pretty XML Tree Viewer (by Mike J. Brown and Jeni Tennison)

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

My problem:

I get this as an output:

 tree
  |
  |___DB
      |
      |___Nina
            |
            |___Servus
            |     |
            |     |___Chip
            |
            |___Hallo
                  |
                  |___Warum
                  |     |
                  |     |___Serve
                  |
                  |___PC


But I want the tree starting from an other node; e.g. the node <nina>.

     tree
      |___Nina
            |
            |___Servus
            |     |
            |     |___Chip
            |
            |___Hallo
                  |
                  |___Warum
                  |     |
                  |     |___Serve
                  |
                  |___PC



tree-view.xml

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


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">
       tree
       <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"/>___&#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>


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!



<Prev in Thread] Current Thread [Next in Thread>