How can I increment the x variable only when numerical is false? (I've
been reading how xquery isn't iterative...)
current output:
<xml>
<person id="1" x="0" numerical="false">people</person>
<person id="2" x="0" numerical="false">joe</person>
<person id="3" x="0" numerical="true">phone1</person>
<person id="4" x="0" numerical="true">phone2</person>
<person id="5" x="0" numerical="true">phone3</person>
<person id="6" x="0" numerical="false">sue</person>
<person id="7" x="0" numerical="true">cell4</person>
<person id="8" x="0" numerical="true">home5</person>
<person id="9" x="0" numerical="false">alice</person>
<person id="10" x="0" numerical="true">atrib6</person>
<person id="11" x="0" numerical="true">x7</person>
<person id="12" x="0" numerical="true">y9</person>
<person id="13" x="0" numerical="true">z10</person>
</xml>
desired output:
<xml>
<person id="1" x="1" numerical="false">people</person>
<person id="2" x="2" numerical="false">joe</person>
<person id="3" x="2" numerical="true">phone1</person>
<person id="4" x="2" numerical="true">phone2</person>
...
</xml>
Maybe with a second xquery? Here's the first:
xquery version "3.0";
<xml>
{
variable $x:=0;
for $line in db:open("foo.txt")//text()
count $id
return if (matches($line, "[0-9]"))
then <person id='{$id}' x='{$x}' numerical="true">{$line}</person>
else <person id='{$id}' x='{$x}'
numerical="false">{$line}</person>
}
</xml>
where I'm trying to use attributes because I'm not sure how to
conditionally nest tags. But, this is interesting. Not quite sure on
syntax to set and then conditionally increment $x, however.
thanks,
Thufir