xsl-list
[Top] [All Lists]

Re: Must be a better way to write this XPath expression

2003-06-06 09:27:35
On Friday 06 June 2003 17:32, Simon(_dot_)Fairey(_at_)ft(_dot_)com wrote:
Hi,

Given:

<data>
        <stuff>
                <a>
                        ...lots in here...
                </a>
                <b>
                        ...lots in here...
                </b>
                <c>
                        ...lots in here...
                </c>
                <d>
                        ...lots in here...
                </d>
        </stuff>
</data>

In my XSL to get sections 'a' and 'b' I would have thought something like:

/data/stuff/(a|b)

doesn't work because you can specify conditionnal expression only into 
predicate,
between '[' and ']'
like this

/data/stuff/child::*[self::a or self::b]
or
/data/stuff/child::*[name()='a' or name()='b']
or
/data/stuff/*[self::a or self::b]



would work but the only thing I can get to work is:

/data/stuff/a|/data/stuff/b

which just seems too long winded for there not to be a better way to
express it.

With absolute paths, I think you can't write a shorter expression

HTH


-- 
Frédéric Laurent
http://www.opikanoba.org

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