|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Re: XPath iteration?
--- Derek Davies <ddavies at itasoftware dot com> wrote:
>
> Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> writes:
>
> > Hi Derek,
> >
> > > I'm sorry if this question is inappropriate here, but I haven't
> > > found a more appropriate place to ask, nor have I found a FAQ
> that
> > > addresses my question.
> >
> > Don't worry; this is a good place to ask your question.
> >
> > > I'm trying to come up with an XPath expression that will
> "iterate".
> > > What I have in mind is something to the effect of:
> > >
> > > /Root/SomeNode[position()!=position(/Root/SomeNode)]
> > >
> > > which would compare each SomeNode against all other SomeNode's
> > > except itself (there are multiple SomeNode children of /Root).
> >
> > Given that all the SomeNode elements are siblings of each other,
> you
> > can collect together the other SomeNodes into a node set with:
> >
> > preceding-sibling::SomeNode | following-sibling::SomeNode
> >
> > I don't know what you want to do with them, though -- perhaps you
> > could describe what you actually want to get from the XPath?
> >
>
> We've got a program that is used to test our XML output by using
> XPath
> to assert things about the output. I have a situation where I want
> to
> use an XPath expression to ensure that no two sibling elements have
> the same content. But I don't want to rely on the number of these
> siblings being constant across tests.
>
> So in my example the number of SomeNode's can change over time but
> the test shouldn't have to adapt to that. It should just ensure that
> the SomeNode contents are different.
>
> Derek
>
Hi Derek,
This can be achieved within a single XPath expression:
/*/*[not(. = preceding-sibling::* or . = following-sibling::*)]
gives all /*/* that do not have duplicate siblings.
To check whether all /*/* have unique values, use:
count(/*/*) = count(/*/*[not(. = preceding-sibling::*
or . = following-sibling::*)
]
)
Hope this helped.
=====
Cheers,
Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
__________________________________________________
Do You Yahoo!?
Sign up for SBC Yahoo! Dial - First Month Free
http://sbc.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








