Формирование xml файла через FOR XML PATH

Базы Данных

Режим Path с командой FOR XML в SQL Server возвращает набор результатов как элемент XML. В отличие от других режимов XML, этот режим SQL FOR XML PATH обеспечивает контроль над созданным файлом XML. Это связано с тем, что режим FOR XML PATH обрабатывает имена столбцов и псевдонимы как выражение XPath.

В этом примере режима SQL FOR XML PATH мы используем таблицы «Products» «Suppliers» и «Categories», имеющиеся в тестовой базе данных SQL.

В этом примере мы будем использовать тестовую базу данных northwindpubs(instnwnd.sql)

Прежде чем вы начнете

Чтобы запустить этот пример, вам понадобится инструмент, который может запускать скрипты Transact-SQL. Вы можете запустить сценарии в следующих инструментах:

Запуск скриптов в SSMS

  1. Откройте SSMS.
  2. Подключитесь к целевому SQL-серверу.
  3. Откройте скрипт в новом окне запроса.
  4.  Запустите скрипт.

 

 

SQL FOR XML PATH Пример 1

В этом примере показан основной способ использования режима FOR XML PATH. Самый простой способ использования режима пути — добавить FOR XML PATH после оператора Select.

Результат

Формирование xml файла через FOR XML PATH

Как видно из приведенного выше снимка экрана, запрос создал XML-файл. Щелкните гиперссылку, чтобы просмотреть файл XML.

Формирование xml файла через FOR XML PATH

SQL FOR XML PATH Пример 2

SQL Server предоставляет ключевое слово ELEMENTS для отображения имен столбцов как вложенных элементов. Позвольте мне использовать это ключевое слово вместе с FOR XML PATH.

Результат

Формирование xml файла через FOR XML PATH

Как видите, на выходе нет никакой разницы. Поскольку режим Path уже выполняет эту операцию

Формирование xml файла через FOR XML PATH

SQL FOR XML PATH Пример 3

Если вы посмотрите на приведенный выше снимок экрана, каждая строка разделена элементом <row> по умолчанию. В этом примере мы покажем вам, как заменить строку по умолчанию настраиваемым элементом.

Результат

Формирование xml файла через FOR XML PATH

Как вы можете видеть на скриншоте ниже, элемент <row> заменен на <Employees>

Формирование xml файла через FOR XML PATH

SQL FOR XML PATH Пример 4

SQL Server FOR XML PATH позволяет вам создать новый корневой элемент, который будет заключать в него все существующие элементы. Чтобы добиться того же, мы должны использовать ключевое слово ROOT вместе с

Результат

Формирование xml файла через FOR XML PATH

а файл XML:

Формирование xml файла через FOR XML PATH

SQL FOR XML PATH Пример 5

Если вы посмотрите на приведенный выше снимок экрана, в качестве родительского уровня используется элемент <root>. В этом примере sql for xml path мы изменим это имя элемента по умолчанию.

Результат

Формирование xml файла через FOR XML PATH

Теперь вы можете видеть, что элемент <root> заменен на <ProductDetails>

Формирование xml файла через FOR XML PATH

SQL FOR XML PATH Пример 6

Если имя столбца (или псевдонима) начинается с символа @ и не содержит символа /, то этот столбец будет добавлен как атрибут к элементу строки.

Из приведенного ниже фрагмента кода ProductName и ProductID начинаются с @. Это означает, что они оба добавлены в качестве атрибута в строку «Products».

Результат

Формирование xml файла через FOR XML PATH

и файл XML:

Формирование xml файла через FOR XML PATH

SQL FOR XML PATH Пример 7

Если имя столбца (или имя псевдонима) не начинается с символа @, но содержит символ /, тогда это имя столбца указывает на иерархию.

Как показано ниже для фрагмента кода пути XML, первый и последний не начинаются с @, но содержат символ косой черты. Это означает, что создана новая иерархия под названием Product, и атрибуты First, так и атрибут Last добавлены к Product.

Результат

Формирование xml файла через FOR XML PATH

и файл XML:

Формирование xml файла через FOR XML PATH

SQL FOR XML PATH Пример 8

Вы также можете использовать подстановочные знаки вместе с Sql Server For XML PATH.

Результат

Формирование xml файла через FOR XML PATH

и файл XML:

Формирование xml файла через FOR XML PATH

FOR XML PATH Пример 9

В этом примере, мы покажем вам, как XML Path обрабатывает безымянные столбцы.

Результат

Формирование xml файла через FOR XML PATH

и файл XML:

Формирование xml файла через FOR XML PATH

FOR XML PATH Пример 10

Используя ключевое слово XMLNAMESPACES вместе с SQL For XML Path, вы можете назначить собственное пространство имен XML-файлу. В этом примере мы покажем как это сделать.

Результат

Формирование xml файла через FOR XML PATH

Вы можете увидеть пространство имен, которое мы использовали в приведенном выше запросе.

Формирование xml файла через FOR XML PATH

 

FOR XML PATH Пример 11

В этом примере, мы покажем вам, как XML Path обрабатывает вложенные коллекции.

Результат

Формирование xml файла через FOR XML PATH

и файл XML:

Формирование xml файла через FOR XML PATH

Документация microsoft по использованию FOR XML PATH

 

Добавить комментарий