This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: XPath problem




Mike,

I am using Xalan.

Also, I am writing as "/*[name()='type']" as in the actual application I
have some other attribute checks too "/*[name()='type' or name() = 'name'
...]"

Thanks,


                                                                                                                                
                                                                                                                                
                                                      To:     <xsl-list@lists.mulberrytech.com>                                 
                    "Michael Kay"                     cc:     (bcc: Sanjay Pandey/Towers Perrin)                                
                    <michael.h.kay@ntlworld.com       Subject:     RE: [xsl] XPath problem                                      
                    >                                                                                                           
                    Sent by:                                                                                                    
                    owner-xsl-list@lists.mulber                                                                                 
                    rytech.com                                                                                                  
                                                                                                                                
                                                                                                                                
                    12/20/2001 09:16 AM                                                                                         
                    Please respond to xsl-list                                                                                  
                                                                                                                                
                                                                                                                                




> I have my XML as follows
>
> <records>
>      <record1 type="type1">
>           <field1 value="xyz">
>      </record1>
>
>      <record1 type = "type2">
>      </record1>
> </records>
>
> If I am looking for an element which does not happen to be an
> attribute my
> logic below works fine in getting the nearest "@type" value
> on the ancestor
> axis.
>
> NodeList nl = XPathAPI.eval(root,
> //xs:field1,prefixResolver).nodelist()
> and then for each Node instance I can get the nearest "@type" value by
> doing something like this

There are quite a few XPath APIs around now that are confusingly similar,
it
would help if you told us which one you were using.
>
>  XObject obj = XPathAPI.eval(currentRecord1Node,"ancestor::
> *[@type][1]/@*[name()='type']",prefixResolver);

Why do you write "/*[name()='type']" rather than "/@type"?

>  String result = obj.toString();
>
> I run into problem when what I am looking happens to be an
> Attribute e,g
> "value". So, if my "currentRecord1Node" is for this attribute element
> "value", I am loosing my Node structure information and I am
> unable to get
> to the nearest "@type" value.

Your terminology is way out (there is no such thing as an attribute
element,
I think you mean an attribute node). But I can't see any reason why the
above expression shouldn't work just because the current node is an
attribute: attributes have ancestors jsut as elements do.

Mike Kay


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






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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]