xsl-list
[Top] [All Lists]

Re: XPath Question Get Attribute

2002-10-09 08:45:22
Hi Scott,

I have a xml file that looks like this:

<imageInfo>
   <psd width="288">
        <other stuff>
        </other stuff>
        <layer name="Blue" type="pixel" top="84" left="83" right="211" 
bottom="206" />
   </psd>
</imgeInfo>

I want to programatically change the top from '84' to '0' but I am
struggline. The next three lines are some I have. The first two
work, and actually are successful. But I cannot figure out how to
set another attribute eg 'top' value.

<set target="/psd/layer[(_at_)name='Green']/@visibility" value="hidden" />  
<!-- works great -->
<set target="/psd/layer[(_at_)name='Blue']/@opacity" value=".5" />            
<!-- works great -->
<set target="/psd/layer[(_at_)name='Blue']["top" value="0.0"] />   <!-- have 
no clue how to set the top value.

The last one there isn't even well-formed XML. I think that you want
to follow the same pattern as the previous two, and use:

  <set target="/psd/layer[(_at_)name='Blue']/@top" value="0.0" />

don't you?

PS, Why the @name and @visibility and @opacity. What does the @
represent?

In XPath, '@' is a shorthand for specifying the attribute axis. For
example:

  psd/layer

would give you the 'layer' child *element* of psd, whereas:

  psd/@layer

would give you the 'layer' *attribute* of psd.

By the way, what application are you using these XPaths in? It doesn't
look like it's XSLT...

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


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



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