[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: Using XPath to match two node levels with the same
Subject: Re: Using XPath to match two node levels with the same name
From: "Mark Peters" <flickrmeister@xxxxxxxxx>
Date: Mon, 7 Aug 2006 15:20:52 -0400
|
Hi Mukul,
You're amazing! You really know your XSL.
I tip my hat to you.
Thanks,
Mark
On 8/7/06, Mukul Gandhi <gandhi.mukul@xxxxxxxxx> wrote:
Please try this stylesheet:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:redirect="http://xml.apache.org/xalan/redirect"
extension-element-prefixes="redirect">
<xsl:output method="xml" />
<xsl:template match="/">
<xsl:apply-templates select="topic" />
<xsl:apply-templates select="//topic[count(ancestor::topic) = 1]" />
</xsl:template>
<xsl:template match="topic">
<xsl:variable name="filename" select="concat(@id,'.xml')"/>
<redirect:write select="$filename">
<topic>
<xsl:copy-of select="@*" />
<xsl:apply-templates mode="x"/>
</topic>
</redirect:write>
</xsl:template>
<xsl:template match="topic[count(ancestor::topic) = 1]">
<xsl:variable name="filename" select="concat(@id,'.xml')"/>
<redirect:write select="$filename">
<xsl:copy-of select="." />
</redirect:write>
</xsl:template>
<xsl:template match="*" mode="x">
<xsl:if test="not(self::topic)">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:apply-templates mode="x" />
</xsl:copy>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|