Joerg,
indeed, namespaces could be a problem when you forget to properly use them... but not
in this particular problem.
The code Anna sent us works just fine on my Cocoon, hence, I think the problem lies
with Anna's configuration, moreover, I
experienced nasty bugs with Xalan already.
Best regards,
---------------------------------------------
Luca Morandini
GIS Consultant
[EMAIL PROTECTED]
http://utenti.tripod.it/lmorandini/index.html
---------------------------------------------
> -----Original Message-----
> From: Joerg Heinicke [mailto:[EMAIL PROTECTED]]
> Sent: Friday, December 20, 2002 1:43 AM
> To: [EMAIL PROTECTED]
> Subject: Re: XPath problem in Cocoon?
>
>
> Anna Afonchenko wrote:
> > Hi Luca. Thank you for answering. Yes, probably that's something with my
> > configuration. I am using Win98, Tomcat 4.1.12, Cocoon 2.0.4, Xalan 2.4.1.
> > I'll try to change the Xalan version.
> > Anyway, this thing is very weird.
> >
> > Thank you.
> > Anna
>
> Hello Anna,
>
> may I point out again, that in my opinion it is a simple namespace
> problem. Ok, it's only a guess, but I never heart of a bug like you
> describe. And exactly this behaviour is comprehensible with the
> following test case:
>
> XML: elements are in default namespace
>
> <root xmlns="test">
> <p>a node to match</p>
> </root>
>
> XSL:
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:test="test">
>
> <xsl:template match="/">
> <table border="1">
> <tr>
> <td>1. test using "//p":</td>
> <td><xsl:value-of select="count(//p)"/> matched</td>
> </tr>
> <tr>
> <td>2. test using "//test:p":</td>
> <td><xsl:value-of select="count(//test:p)"/> matched</td>
> </tr>
> <tr>
> <td>3. test using "//*[name() = 'p']":</td>
> <td><xsl:value-of select="count(//*[name() = 'p'])"/> matched</td>
> </tr>
> <tr>
> <td>4. test using "//*[name() = 'test:p']":</td>
> <td><xsl:value-of select="count(//*[name() = 'test:p'])"/> matched</td>
> </tr>
> </table>
> </xsl:template>
>
> </xsl:stylesheet>
>
> Result:
>
> 1. test using "//p": 0 matched
> 2. test using "//test:p": 1 matched
> 3. test using "//*[name() = 'p']": 1 matched
> 4. test using "//*[name() = 'test:p']": 0 matched
>
> Your cases are number 1 and 3 and you can see the same behaviour. Have a
> look into your XML file, whether a default namespace is set there. The
> reason for the differences when using default namespace is, that you
> must bind it in XSLT on a prefix. You can not match on elements via //p,
> if they are in default namespace.
>
> Regards,
>
> Joerg
>
>
> ---------------------------------------------------------------------
> Please check that your question has not already been answered in the
> FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html>
>
> To unsubscribe, e-mail: <[EMAIL PROTECTED]>
> For additional commands, e-mail: <[EMAIL PROTECTED]>
>
---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html>
To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>