Subject: Re: [xsl] How to compare two sequences, where order matters and length matters? From: "David Carlisle d.p.carlisle@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 21 Nov 2017 23:27:41 -0000 |
deep-equal? On 21 November 2017 at 17:21, Costello, Roger L. costello@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > Hi Folks, > > Consider this XML: > > <sequences> > <sequence/> > <sequence> > <item>A</item> > </sequence> > <sequence> > <item>B</item> > </sequence> > <sequence> > <item>A</item> > <item>A</item> > </sequence> > <sequence> > <item>A</item> > <item>B</item> > </sequence> > <sequence> > <item>B</item> > <item>A</item> > </sequence> > <sequence> > <item>B</item> > <item>B</item> > </sequence> > </sequences> > > Suppose that $item has this value: > > <item>A</item> > > And suppose the root element, <sequences>, is the context node. > > Then, this evaluates to true (thanks David): > > sequence[2] = (sequence[1], $item) > > Unfortunately, this also evaluates to true: > > sequence[4] = (sequence[1], $item) > > sequence[4] is this: > > <sequence> > <item>A</item> > <item>A</item> > </sequence> > > And this also evaluates to true: > > sequence[5] = (sequence[1], $item) > > sequence[5] is this: > > <sequence> > <item>B</item> > <item>A</item> > </sequence> > > Eek! > > I don't want that. I only want these two sequences to match: sequence[2] and (sequence[1], $item). > > For this comparison: > > Blah/item *compare-operator* (Bar/item, $item) > > It should only return true if: > > 1. The number of <item> elements are the same on the left and right side of compare-operator. > > 2. The value of item[1] of the left sequence equals the value of item[1] of the right sequence. > The value of item[2] of the left sequence equals the value of item[2] of the right sequence. > Etc. > > In other words, in the comparison the order of the items in the left and right sequences matters and the number of the items in the left and right sequences matter. > > What XPath expression will do such a comparison? > > Note: I'd like the XPath expression to *not* use a for-each loop. > > /Roger
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] How to compare two sequences,, Costello, Roger L. c | Thread | Re: [xsl] How to compare two sequen, Michael Kay mike@xxx |
[xsl] How to compare two sequences,, Costello, Roger L. c | Date | Re: [xsl] How to compare two sequen, Michael Kay mike@xxx |
Month |