Использование 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.

Другие вопросы по тегам