[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XPath expression that returns a sequence of pairs?
The XPath 2.0 data model does not allow sequences of sequences, so there's no obvious way to represent a sequence of pairs -- except as an XML tree, of course. In XPath 3.1 you can return an array. Actually you can return an array of arrays, an array of sequences, or a sequence of arrays. For example to return a sequence of arrays write > for $i in //Observation return [data($i/Target-Latitude), data($i/Target-Longitude)] Michael Kay Saxonica > On 17 Jan 2023, at 20:08, Roger L Costello costello@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > Hi Folks, > > I have this XML document: > > <Track-History> > <Track-ID>XYZ</Track-ID> > <Observation> > <Target-Latitude>10</Target-Latitude> > <Target-Longitude>20</Target-Longitude> > <Observer-Latitude>40</Observer-Latitude> > <Observer-Longitude>50</Observer-Longitude> > </Observation> > <Observation> > <Target-Latitude>15</Target-Latitude> > <Target-Longitude>25</Target-Longitude> > <Observer-Latitude>40</Observer-Latitude> > <Observer-Longitude>50</Observer-Longitude> > </Observation> > </Track-History> > > I want an XPath expression that returns a sequence of (Target-Latitude, Target-Longitude) pairs; i.e., a pair for each <Observation> element. For the XML document shown above, the XPath should return this sequence: > > (10,20), (15,25) > > A count of the number of items in the sequence should yield: 2 > > The following XPath is not correct: > > for $i in //Observation return ($i/Target-Latitude, $i/Target-Longitude) > > A count of the number of items returned by that XPath yields: 4 > > Is there an XPath to do what I seek? > > /Roger
|
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
|