This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: transfer namespace within XSL
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] transfer namespace within XSL
- From: Francis Norton <francis at redrice dot com>
- Date: Wed, 18 Apr 2001 21:43:58 +0100
- References: <NEBBKNMJAKBEAAGNEAFHGEBMCCAA.ivo.ottiger@bluewin.ch>
- Reply-To: xsl-list at lists dot mulberrytech dot com
Ivo Ottiger 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
>
try this:
<?xml version="1.0"?>
<!-- quotes.xsl: Transform to Quote.dtd vocabulary -->
<xsl:stylesheet version="1.0"
mlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:p="http://www.portfolio.org/Portfolio/Response">
<xsl:output method="xml" doctype-system="Quote.dtd" indent="yes"/>
<xsl:template match="/">
<Quotes>
<xsl:for-each select="p:PortfolioResp/p:Quote">
<Quote Symbol="{p:Symbol}">
<Time>
<xsl:value-of select="p:Time"/>
</Time>
<Price>
<xsl:value-of select="p: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>
>
C:\xml>saxon t.xml t.xslt
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Quotes
SYSTEM "Quote.dtd">
<Quotes xmlns:p="http://www.portfolio.org/Portfolio/Response">
<Quote Symbol="SUNW">
<Time>9:51AM</Time>
<Price>16.06</Price>
</Quote>
</Quotes>
C:\xml>
I removed the xhtml namespace declaration as confusing for this example
- though obviously it may be required for the real exercise - and they
weren't required in any of the select expressions. I added a namespace
prefix for all the matches. It might be worth checking the excellent
namespace tutorial at
http://zvon.org/xxl/NamespaceTutorial/Output/index.html if this was not
just a typo.
Hope this helps -
Francis.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list