And if this is the case there should be an API added to perform this
functionality I think.

thanks - dave



----- Original Message -----
From: "Thierry Hanser" <[EMAIL PROTECTED]>
To: "David Thielen" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Friday, January 24, 2003 3:15 AM
Subject: Re: [dom4j-user] Re: Trying again: Node.matches() not working


>
> Hi Dave,
>
> >>>an example.
> >>>
> >>>     boolean exists = node.matches( "/order/customer/name" );
> >>>     List nodeList = node.selectNodes( "/order/customer/name" );
> >>>
>
> According to the Dom4j API documentation and your example
> variable 'exists' should return true as you expect.
>
> But according to the method's name this is no more true.
> My guess is that since 1.3 the behaviour of the matches() method
> has been *corrected* to do what the meaning of the
> method's name let us assume. Howeever the the API documentation
> for this method remains missleading. According to the method's name i
> would say that node.matches(XPathExp) returns true *only* if  'node' is
> contained in the nodeset resulting of the XPathExp evaluation.
>
> In other words, using your example :
>
>   node.matches( "/order/customer/name" )
>
>   is equivalent to:
>
> in 1.3 :  node.selectNodes( "/order/customer/name").contains(node)
>
> which reflects the meaning of the method's name and not
>
> in 1.2 :  !node.selectNodes( "/order/customer/name").isEmpty()
>
> which reflects the API but is not in accordance with the name "matches()"
>
>
>
> Thus exists should be only if your node is
> in the nodeset "/order/customer/name", that is your node
> is a 'name' element in a 'customer' etc...
>
>   Again this is my guess, i am not 100% sure about it and it
> has to be confirmed by the Dom4J team.
>
>   If confirmed, Dom4J API could be update to avoid ambiguity
>
> API Doc for matches():
>
>   'matches' returns true if evaluating the given XPath expression on
> this node returns *[true or a non-empty node set. So calling this method
> is equivalent to calling <xsl:if test="xpathExpression"/>  in XSLT.]*
>
> could become something like:
>
>   *matches* returns true if evaluating the given XPath expression on
> this node  a non-empty node set containing the node itself.
>
>
> Talking API since Node.matches() does now the right job
> shouldn't we considere adding a test() method in the Node API
>
> in Node : boolean test(String "XPathExp")
>
> that would take over the 1.2 behaviour of matches() and fit to the
> deprecated API documentation so that we got again a method equivalent to
> the XSLT 'test' attribute in the <xsl:if>
> element.
>
> Sincerely,
>
> Thierry
>
>
> -----------------------------------------------------------------------
>          IXELIS -  Systèmes d'Information Sémantique
>
>                   http://www.ixelis.com
>
>           17 rue des Cèdres, F67200 STRASBOURG (France)
>
>    Tél      : +33 (0)3 88 27 81 39  Portable : 06 30 07 65 73
>    E-mail   : [EMAIL PROTECTED]       Fax      : +33 (0)3 88 27 81 39
> -----------------------------------------------------------------------
>
>
>
>
> -------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> http://www.vasoftware.com
> _______________________________________________
> dom4j-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/dom4j-user
>



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
dom4j-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dom4j-user

Reply via email to