[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?
On Tue, 2023-01-17 at 20:09 +0000, Roger L Costello costello@xxxxxxxxx wrote: > > 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 As others have said, you can't do this in the XPath Data Model with sequences, but you can with arrays of course. let $input := <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> return for $observation in $input/Observation return [ xs:integer($observation/Target-Latitude), xs:integer($observation/Target-Longitude) ] If you wrap that whole thing in count( ... ) you get 2. You possibly want xs:double() rather than xs:integer(), or xs:string(), in production of course. liam -- Liam Quin,B https://www.delightfulcomputing.com/ Available for XML/Document/Information Architecture/XSLT/ XSL/XQuery/Web/Text Processing/A11Y training, work & consulting. Barefoot Web-slave, antique illustrations: B http://www.fromoldbooks.org
|
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
|