Subject: [xsl] selecting a document()'s root node From: Jan Limpens <jan.limpens@xxxxxxxxx> Date: Wed, 10 Nov 2004 12:20:54 -0200 |
hi, i want to generate a xml site navigation structure from a file that shows the physical data-structure. <?xml version="1.0"?> <site xmlns:site="http://limpens.com/site"> <site:document-base>file:///D:/usr/jan/My Documents/Visual Studio Projects/Limpens.com/Web/Data</site:document-base> <site:root-document> <site:xml-document>/BlogCollection.xml</site:xml-document> <site:children> <site:document> <site:xml-Document>/IllustrationBlog.xml</site:xml-Document> <site:children> <site:document> <site:xml-Document>/Illustrations/AfroBabe.xml</site:xml-Document> </site:document> <site:document> <site:xml-Document>/Illustrations/ClubFlyers.xml</site:xml-Document> </site:document> <site:document> <site:xml-Document>/Illustrations/iEditoraComics.xml</site:xml-Document> </site:document> </site:children> </site:document> <site:document> <site:xml-Document>/PublicationBlog.xml</site:xml-Document> </site:document> <site:document> <site:xml-Document>/DevelopmentBlog.xml</site:xml-Document> </site:document> </site:children> </site:root-document> </site> i want to generate <site> <homepage> <link>/blogcollection</link> <title>foo</title> <description>bar</description> <children> <document> <link>/blogcollection/illustrationblog</link> <title>illustrations</illustrations> <description>...</description> <children> ...... </children> </document> </children> </homepage> </site> the title and description elements are generated by document() calls to the said xml documents, which have many different structures, some have schemas and namespaces, some don't. so I thought I create this <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:lc="http://limpens.com/blogbase" xmlns:site="http://limpens.com/site"> <!-- I include the namespaces here --> <xsl:template match="/"> <xsl:apply-templates select="//site:root-document"/> </xsl:template> <xsl:template match="site:root-document"> <xsl:variable name="path" select="concat(/site/site:document-base[1],site:xml-document)"/> <xsl:variable name="my-node" select="document($path)" /> <xsl:apply-templates select="$my-node::*" /> </xsl:template> <xsl:template match="BlogCollection">BlogCollection! <!-- blogcollection has no namespace, I wonder if this will work at all... --> </xsl:template> <!-- and other templates for other root nodes I might encounter --> </xsl:stylesheet> First big question: Is this the right way to do this? Second question... how do I generically select the root node? <xsl:apply-templates select="$my-node::*" /> does not work, I am afraid... thanks for any help!! -- Jan http://www.limpens.com Otakoo Saloon Cartoon - newest episode at http://limpens.com/oscredirect
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: AW: [xsl] variable and arithmet, M. David Peterson | Thread | RE: [xsl] selecting a document()'s , Jarno.Elovirta |
RE: [xsl] Grouping by key, Osman Çınar Eren | Date | RE: [xsl] selecting a document()'s , Jarno.Elovirta |
Month |