Использование XQuery для удаления xsi:nil = true, когда значение присваивается узлу элемента
Может ли кто-нибудь помочь мне достичь следующего:
- Как удалить в XQuery атрибут xsi:nil= "true", когда элементу присвоено значение?
Если элемент имеет нулевое значение, то xsi: nil = "true" сохраняется.
Thnx.
1 ответ
Решение
Для этого вы можете использовать XQuery Update, например:
declare variable $e := <entry nil="true" />;
if ($e/@nil != "null") then (
copy $c := $e
modify (
delete node $c/@nil
)
return $c
)
else $e
Обратите внимание, что в xquery нет действительного значения NULL, с которым вы, возможно, знакомы по таким языкам, как Java. Поэтому я использовал простую строку, чтобы указать нулевое значение, вы можете изменить это.
Кроме того, имейте в виду, что эта функция не возвращает тот же узел без атрибута, а вместо этого копирует узел и возвращает этот новый измененный узел без атрибута nil.