2012-02-16 2 views
0

Является ли оператор «заменять узел ...» в любое время равным атомному удалению узла (с его поддеревом) и вставке содержимого для замены на том же месте?XQuery Update Facility/Replace node

Это вопрос о том, что у нас есть DOM-реализация, для поддержки операций замены - это сохранить, чтобы принять вышеуказанное утверждение или что-то подобное возможно (в случае замены элемента "foo" на " блабла "элементная):

оригинальное дерево:

  • корень
    • Foo
      • бар
      • Баз

модифицированного дерева:

  • корень
    • блабла
      • бар
      • Баз

ответ

1

Вы можете также использовать rename node сохранить структуру потомок узла.

+0

Привет, христианин, да, я знаю узел переименования, который будет переводиться в 'setQName (QName)' или 'setValue (String)' в нашем случае :-) Просто хотел проверить, что мой diff всегда будет обнаруживать «заменять» «-операции и не являются эвристическими в этом случае ... (и что моя простая реализация замены совместима с рекомендацией XQuery Update Facility). Благодаря ;-) – Johannes

1

Просто построить узел <blabla>, который содержит содержимое <foo> «s:

replace node /foo with <blabla>{/foo/*}</blabla> 
Смежные вопросы