Subject: Re: Re: [xsl] XPath iteration? From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Fri, 12 Jul 2002 08:01:28 -0700 (PDT) |
--- 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XPath iteration?, Derek Davies | Thread | Re: [xsl] XPath iteration?, Derek Davies |
Re: [xsl] XSLT & SQL, Charles Knell | Date | Re: [xsl] XPath iteration?, David Carlisle |
Month |