xsl-list
[Top] [All Lists]

AW: access the root element

2005-11-03 08:48:53
Hallo Kai,

There seem to be at least two problems in your XSLT stylesheet.

1., If you want to match an element within a namespace (as it is in your source 
document),
you need to define that namespace in your stylesheet, too.
Therefore the beginning of your stylesheet needs to be like:
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="2.0" 
xmlns:m="http://metrics.sourceforge.net/2003/Metrics-First-Flat";>

That allows you to access the nodes in your source file by using the namespace 
prefix ("m" in my namespace declaration).
Having that in mind
<xsl:for-each select="Metric[count(Value)=1]">
changes to 
<xsl:for-each select="m:Metric[count(Value)=1]">


2. You are trying to acces an <Metric> element directly below "/", which does 
not select what you want according to your source file.
You need to select m:Metrics/m:Metric[count(Value)=1] since Metrics is your 
root element, not Metric.

I hope this helps.

liebste Grüße,
Roman Huditsch
_______________________________________

Roman Huditsch
IT and Electronic Publishing
LexisNexis ARD Orac 
Marxergasse 25
1030 Vienna
Austria 
ph: +43-1-534 52-1514
f: +43-1-534 52-140
e-mail roman(_dot_)huditsch(_at_)lexisnexis(_dot_)at
www.lexisnexis.at
 

-----Ursprüngliche Nachricht-----
Von: Kai Hackemesser [mailto:kaha(_at_)gmx(_dot_)de] 
Gesendet: Donnerstag, 3. November 2005 16:34
An: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Betreff: [xsl] access the root element

I'm desparating.

I have an XML document (very large, 78k lines, generated by 
the Eclipse Plugin "Eclipse Metrics") where I want to write 
an XSL for. The XML is formed like that:
<?xml version="1.0" encoding="UTF-8"?>
<Metrics scope="eVistaDev" type="PackageRoot" date="2005-11-02"
xmlns="http://metrics.sourceforge.net/2003/Metrics-First-Flat";>
<Cycle>
<Package>A.Package.Name</package>
</Cycle>
<Metric>(further elements)</Metric>
<Metric>(further elements)</Metric>
...
<Metrics>

It is a completely wellformed XML file. I try to access the 
attributes of the Metrics element (the root element). I have 
no luck with that. Can anybody tell me where is the error for 
that I'm blind for?

this is the xsl file I have written so far:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="2.0">
    <xsl:output method="html"/>
    <xsl:template match="/">
        <html>
            <head>
                <title>Metrics Report from <xsl:value-of 
select="@date"
/></title>
            </head>
            <body >
                <H1><xsl:value-of select="@date" />, 
<xsl:value-of select="@type" /></H1>
                <h2>Overview for calculated Metrics</h2>
                <!-- 1. Overview over Project -->
                <h3>Overall Metrics</h3>
                <ul>
                <xsl:for-each select="Metric[count(Value)=1]">
                    <li><xsl:value-of select="@id"/> - 
<xsl:value-of select="@description"/> : <xsl:value-of 
select="./Value/@value"/></li>
                </xsl:for-each>
                </ul>
                <!-- 2. Overview over Packages -->
            </body>
        </html>
    </xsl:template>    
</xsl:stylesheet>


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>