[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: transfer namespace within XSL
- From: Rob Lugt <roblugt@elcel.com>
- To: Ivo Ottiger <ivo.ottiger@bluewin.ch>, xml-dev@lists.xml.org
- Date: Thu, 19 Apr 2001 00:53:42 +0100
From: Ivo Ottiger mailto:ivo.ottiger@bluewin.ch wrote:
> I try to transform the following XML Doc
>
> <?xml version = "1.0" encoding = "UTF-8"?>
> <PortfolioResp xmlns = "http://www.portfolio.org/Portfolio/Response"
> xmlns:xhtml="http://www.w3.org/1999/xhtml">
> <Quote>
> <Symbol>SUNW</Symbol>
> <Time>9:51AM</Time>
> <Price>16.06</Price>
> <Change>-1.53%</Change>
> <Volume>3,729,800</Volume>
> </Quote>
> </PortfolioResp>
>
> whith the following XSL into a new one without namespace
>
> <?xml version="1.0"?>
> <!-- quotes.xsl: Transform to Quote.dtd vocabulary -->
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:xhtml="http://www.w3.org/1999/xhtml">
> <xsl:output method="xml" doctype-system="Quote.dtd" indent="yes"/>
> <xsl:template match="/">
> <Quotes>
> <xsl:for-each select="xhtml:PortfolioResp/xhtml:Quote">
> <Quote>
> <Symbol Ticker="{xhtml:Symbol}"></Symbol>
> <Time><xsl:value-of select="xhtml:Time"/></Time>
> <Price><xsl:value-of select="xhtml:Price"/></Price>
> </Quote>
> </xsl:for-each>
> </Quotes>
> </xsl:template>
> </xsl:stylesheet>
>
> which should look like this one
>
> <?xml version = "1.0" encoding = "UTF-8"?>
> <Quotes>
> <Quote Symbol="SUNW">
> <Time>9:51AM</Time>
> <Price>16.06</Price>
> </Quote>
> </Quotes>
>
> But without any success. Can somebody help me.
> Thanks.
From a quick glance it looks like a namespace prefix problem. In your XSLT
stylesheet you refer to the elements xhtml:PortfolioResp and xhtml:Quote.
In the stylesheet the prefix xhtml rightly refers to the URI
http://www.w3.org/1999/xhtml but the elements you reference are in the
namespace with the URI http://www.portfolio.org/Portfolio/Response. You
simply need to create a new namespace prefix in your XLST stylesheet and use
that as the prefix for the PortfolioResp and Quote elements.
Regards
Rob Lugt
ElCel Technology
http://www.elcel.com