Re: [xsl] XPath Question Get Attribute

Subject: Re: [xsl] XPath Question Get Attribute
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Wed, 9 Oct 2002 16:45:22 +0100
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[@name='Green']/@visibility" value="hidden" />  <!-- works great -->
> <set target="/psd/layer[@name='Blue']/@opacity" value=".5" />            <!-- works great -->
> <set target="/psd/layer[@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[@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


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


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...



Jeni Tennison

 XSL-List info and archive:

Current Thread