Subject: Re: Creating namespace nodes
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 7 Jun 2005 14:40:25 +0100
|
<example>
<start-here xmlns:bar="www.super.org/bb" type="bar:foo"/>
<types xmlns:aa="www.super.org/aa" xmlns:bb="www.super.org/bb">
<type name="aa:foo"/>
<type name="bb:foo"/>
</types>
</example>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" version="1.0" />
<xsl:template match="/">
<xsl:apply-templates select="//start-here"/>
</xsl:template>
<xsl:template match="start-here">
<xsl:variable name="ns" select="namespace::*[name()=substring-before(current()/@type,':')]"/>
<xsl:variable name="l" select="substring-after(@type,':')"/>
<xsl:copy-of select="//type[substring-after(@name,':')=$l and
substring-before(@name,':')=name(namespace::*[.=$ns ])]"/>
</xsl:template>
</xsl:stylesheet>
$ saxon qn.xml qn.xsl
<?xml version="1.0" encoding="utf-8"?>
<type xmlns:aa="www.super.org/aa" xmlns:bb="www.super.org/bb" name="bb:foo"/>
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
|