У меня есть требование, когда мне нужно всегда выводить необязательные элементы XML (независимо от доступности данных) при записи в файл .csv.
XML-формат файла
<entries>
<countryCode>123</countryCode>
<adminDataMap>
<testAccount>True</testAccount>
<code>11</code>
</adminDataMap>
<privateMap>
<email>[email protected]</email>
<cancelReason>Not interested</cancelReason>
</privateMap>
</entries>
Здесь «записи» Корневой элемент «cancelReason», «testAccount» являются необязательными элементами, которые будут доступны только после того, как будут получены данные.
т. е. некоторые записи будут иметь эти «необязательные» поля, а другие — нет.
Я написал XQuery для извлечения всех этих элементов.
let $entries := /root/entries
return
for $entry in $entries
return
<entries>
{
$entry/*,
$entry/privateMap/email,
$entry/privateMap/cancelReason,
$entry/adminDataMap/code,
$entry/adminDataMap/testAccount
}
</entries>
Мое требование состоит в том, чтобы извлечь все обязательные и необязательные элементы как ВЫВОД. т. е. Выходные метаданные всегда остаются неизменными. Если необязательный 'cancelReason' не имеет значения, он будет заполнен пробелами/нулями [что-то вроде этого]
Пожалуйста, сообщите какие-либо опции в XQUERY, которые можно написать для достижения этой цели.