I have an XML schema that contains the following type :
<xs:simpleType name="valuelist">
<xs:list itemType="xs:double"/>
</xs:simpleType>
A sample XML fragment would be:
<values>1 2 3.2 5.6</values>
In an XSLT transform, how do I get the number of elements in the list?
How do I iterate over the elements?
In a schema-aware transformation, use
count(data(value))
.If list is strictly spaced, you can count spaces based on string length.
XSLT:
To iterate over elements you have to split this string. There a lot of examples at SO.
I. XPath 2.0 (XSLT 2.0) solution:
II. XPath 1.0 (XSLT 1.0) solution:
As for iteration over the items of this list:
select
attribute:--
--
2.
In XSLT 1.0 you need to have some more code for splitting/tokenization. There are several good answers to this question (part of them mine) -- just search for something like "xslt split a string"With a little imagination you can write your own split function :
Output :