Subject: RE: [xsl] XPath problem From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Thu, 20 Dec 2001 14:16:19 -0000 |
> 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XPath problem, Sanjay Pandey/Towers | Thread | RE: [xsl] XPath problem, Sanjay Pandey/Towers |
RE: [xsl] How can I avoid generatin, Michael Kay | Date | Re[2]: [xsl] How can I avoid genera, Maxim Patramanskij |
Month |