Методы типа данных XML стр. 5 |
|||||
Метод modify()Метод modify() позволяет изменять значения непосредственно в XML-документе. Так же, как и другие методы, он требует выражение XPath, чтобы понять, какое значение нужно изменить. Однако, в отличие от других методов, modify() работает с оператором UPDATE (и не работает с оператором SELECT). Также, modify() может работать только с одним значением за раз. В математике и программировании это называется одноэлементным множеством. Так как не существует никакого ограничения на количество элементов, содержащихся внутри другого элемента, выражение XPath может возвращать много дочерних элементов. Например, если имеется такой XML документ: <week> <day>Monday</day> <day>Tuesday</day> <day>Wednesday</day> </week> <day>Monday</day> <day>Tuesday</day> <day>Wednesday</day> Однако, если заменить выражение XPath на (/week/day)[1], то будет возвращён только один элемент "Monday". <day>Monday</day> Попробуем получить название первого лейбла альбома "OK Computer" группы "Radiohead".
Метод modify() имеет единственной целью изменение значений в XML-документе, что является полезной возможностью. Представьте, что XML-документ уже импортирован на Язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL Server, и обнаружилась опечатка или нужно обновить только одно значение. Чтобы не загружать заново уже исправленный XML-документ, можно просто использовать метод modify() и изменить необходимые значения непосредственно в сохранённом XML-документе на SQL Server. В следующем примере мы поменяем местами названия лейблов альбома "OK Computer" группы "Radiohead". Первый лейбл должен быть заменён на "Capitol", а второй – на "Parlophone". Метод modify() может быть использован в предложении SET оператора UPDATE по отношению к переменной или столбцу типа данных XML.
Отлично – исправленный запрос отработал корректно, что подтверждается сообщениями: (1 row(s) affected) (1 row(s) affected) Теперь вернёмся к исходному запросу (с использованием оператора SELECT) и выполним его, чтобы проверить, что названия лейблов были обновлены корректно.
<labels> <label>Capitol</label> <label>Parlophone</label> </labels> Эта задача может быть решена по-другому. Можно поменять местами элементы "label" без изменения их значений. Просто вставим копию первого лейбла в конец списка лейблов.
После чего удалим первый лейбл.
Чтобы удостовериться, что лейблы поменялись местами корректно, выполним следующий запрос:
<labels> <label>Parlophone</label> <label>Capitol</label> </labels> Теперь попробуем отметить песню "Perfect Crime" из альбома "Use Your Illusion I" группы Guns N' Roses, как популярную. Для этого добавим в XML-документ в соответствующий элемент атрибут isPopular со значением 1.
В качестве ещё одного примера добавим информацию о дате выпуска и дате записи песни "Estranged" из альбома "Use Your Illusion II" группы Guns N' Roses. Обратите внимание, что в данном примере в элемент добавляется сразу два атрибута.
|