Re: [xsl] Newbie: Excel XML XSL

Subject: Re: [xsl] Newbie: Excel XML XSL
From: "Thomas B. Passin" <tpassin@xxxxxxxxxxxx>
Date: Wed, 13 Feb 2002 10:35:37 -0500
Matt,

This can definitely be confusing.  Here is how to sort it out for your
example.

First, the top level element contains a default namespace:

xmlns="urn:schemas-microsoft-com:office:spreadsheet"

This is also the namespace declared for the "ss" prefix.

Second, the element that contains the element you are interested in, itself
has a default naemspace:

<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">

So the Workbook element is in the
"urn:schemas-microsoft-com:office:spreadsheet" namespace, which is the same
as the "ss" namespace, and the Document Properties element is in the
"urn:schemas-microsoft-com:office:office namespace.  Furthermore, the Author
element is in the default namespace of its parent element (since it does not
have a prefix).

To find these elements in an xpath expression, you have to use their
namespace, which you do by using a prefix bound to it.  But there is no
prefix for the default namespace in the xml source document, so what do you
do?  Simple, just supply your own in the stylesheet.  The prefixes you use
do n0t have to match those used in the source document, because the xslt
processor uses the actual namespaces, not their prefixes, to perform
matches.

For instance, let's use "oo" for the office:office one, and "ss" for the
office:spreadsheet one:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:oo="urn:schemas-microsoft-com:office:office">

Now the path to your Author element is:

Author: <xsl:value-of
select="/ss:Workbook/oo:DocumentProperties/oo:Author"/>

By test, this does extract the value of the Author, giving:

Author: Paul Cornell

Cheers,

Tom p


[Matts Isuls]
>
> I'm a total newbie and have problems with an Excel XP (2002) XML file.
> Below you see a first XSL test of mine.
>
> I only want to display the author. The HTML displays fine (IE6)
> but not the Author form the XML file.
>
> I get real confused with all the XML namespace stuff.
> Any  help is appreciated.
>
> -XSL-----------------------------------
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
> <xsl:output indent="yes"/>
> <xsl:template match="/">
> <html><head><title>Excel worksheet</title>
> </head><body>
> <h1>Excel worksheet</h1>
> Author: <xsl:value-of select="Workbook/DocumentProperties/Author"/>
> </body></html>
> </xsl:template>
> </xsl:stylesheet>
>
> -/XSL-----------------------------------
>
>
> -XML-----------------------------------
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <?xml-stylesheet type="text/xsl" href="book2.xsl"?>
> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
>         xmlns:o="urn:schemas-microsoft-com:office:office"
>         xmlns:x="urn:schemas-microsoft-com:office:excel"
>         xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
>         xmlns:html="http://www.w3.org/TR/REC-html40";>
>     <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
>         <Author>Paul Cornell</Author>
>         <LastAuthor>Paul Cornell</LastAuthor>
>         <Created>2001-08-02T16:08:21Z</Created>
>         <Company>Microsoft Corporation</Company>
>         <Version>10.2625</Version>
>     </DocumentProperties>
>     <OfficeDocumentSettings
xmlns="urn:schemas-microsoft-com:office:office">
>         <DownloadComponents/>
>         <LocationOfComponents HRef="file:///\\OfficeXP\CD1\"/>
>     </OfficeDocumentSettings>
>     <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
>         <WindowHeight>6135</WindowHeight>
>         <WindowWidth>8445</WindowWidth>
>         <WindowTopX>240</WindowTopX>
>         <WindowTopY>120</WindowTopY>
>         <ProtectStructure>False</ProtectStructure>
>         <ProtectWindows>False</ProtectWindows>
>     </ExcelWorkbook>
>     <Styles>
>         <Style ss:ID="Default" ss:Name="Normal">
>             <Alignment ss:Vertical="Bottom"/>
>             <Borders/>
>             <Font/>
>             <Interior/>
>             <NumberFormat/>
>             <Protection/>
>         </Style>
>     </Styles>
> <!-- ** snip ** -->
> </Workbook>
>
> -/XML-----------------------------------
>
>
>


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread