Следующий вывод не так уж далек, но запрос создает новый элемент record
для каждой записи entry
, тогда как исходные данные содержат четыре узла элементов entry
в каждой записи.
Таким образом некоторые данные стираются. Должно быть четыре узла entry
, которые являются потомками узла record
, record
; корневой элемент csv
.
Как добавить атрибуты к каждому элементу entry
без изменения дерева документа?
То, что я ищу, похоже на:
<record>
<entry num="1">2020-01-26</entry>
<entry num="2">Vancouver Coastal</entry>
..
<record>
<entry num="1">2020-02-02</entry>
..
так что "счетчик" перезапускается для каждой записи.
текущий выход:
<csv>
<record>
<entry num="1">2020-01-26</entry>
</record>
<record>
<entry num="2">Vancouver Coastal</entry>
</record>
<record>
<entry num="3">M</entry>
</record>
<record>
<entry num="4">40-49</entry>
</record>
<record>
<entry num="5">Lab-diagnosed</entry>
</record>
<record>
<entry num="6">2020-02-02</entry>
</record>
<record>
<entry num="7">Vancouver Coastal</entry>
</record>
<record>
<entry num="8">baz</entry>
</record>
<record>
<entry num="9">50-59</entry>
</record>
<record>
<entry num="10">Lab-diagnosed</entry>
</record>
<record>
<entry num="11">2020-02-05</entry>
</record>
<record>
<entry num="12">Vancouver Coastal</entry>
</record>
<record>
<entry num="13">F</entry>
</record>
<record>
<entry num="14">20-29</entry>
</record>
<record>
<entry num="15">Lab-diagnosed</entry>
</record>
</csv>
xзапрос:
<csv>
{
for $x at $i in db:open("bccdc_covid19.abbreviated")/csv/record/entry
return <record><entry num="{$i}">{$x/@*, $x/node()}</entry></record>
}
</csv>
вход:
<csv>
<record>
<entry>2020-01-26</entry>
<entry>Vancouver Coastal</entry>
<entry>M</entry>
<entry>40-49</entry>
<entry>Lab-diagnosed</entry>
</record>
<record>
<entry>2020-02-02</entry>
<entry>Vancouver Coastal</entry>
<entry>baz</entry>
<entry>50-59</entry>
<entry>Lab-diagnosed</entry>
</record>
<record>
<entry>2020-02-05</entry>
<entry>Vancouver Coastal</entry>
<entry>F</entry>
<entry>20-29</entry>
<entry>Lab-diagnosed</entry>
</record>
</csv>
Стремление сохранить структуру исходного документа выше.