This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Newbie: Excel XML XSL
- From: Matts Isuls <matts dot isuls at AGROLINK dot FI>
- To: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Date: Thu, 14 Feb 2002 16:05:14 +0200
- Subject: RE: [xsl] Newbie: Excel XML XSL
- Reply-to: xsl-list at lists dot mulberrytech dot com
Thanks Thomas. It works great. Have successfully beeen
able to extract other data also. I wouldn't have made
it without your help.
tnx,
Matts
Thomas B. Passin (13.2.2002 17:35):
>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
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list