Я хочу, чтобы установить инструкцию по обработке, чтобы включить таблицы стилей на вершине XML:SQL Server FOR XML PATH: Набор XML-декларации или инструкции по обработке «XML-таблицы стилей» на вершине
Та же проблема была с XML-декларация (например <?xml version="1.0" encoding="utf-8"?>
)
Желаемый результат:
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<TestPath>
<Test>Test</Test>
<SomeMore>SomeMore</SomeMore>
</TestPath>
Мои исследования привели меня к узловой тест синтаксиса и processing-instruction()
.
Этот
SELECT 'type="text/xsl" href="stylesheet.xsl"' AS [processing-instruction(xml-stylesheet)]
,'Test' AS Test
,'SomeMore' AS SomeMore
FOR XML PATH('TestPath')
производит это:
<TestPath>
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<Test>Test</Test>
<SomeMore>SomeMore</SomeMore>
</TestPath>
Все советы, которые я нашел сказать мне, чтобы преобразовать XML в VARCHAR, сцепить его "вручную" и преобразовать его обратно в XML. Но это - как сказать - уродливый?
Это работает, очевидно:
SELECT CAST(
'<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<TestPath>
<Test>Test</Test>
<SomeMore>SomeMore</SomeMore>
</TestPath>' AS XML);
Есть ли шанс решить эту проблему?
Отличный вход, спасибо! Пока они не найдут что-то вроде 'top-processing-instruction()', это очень хорошая работа! – Shnugo
Привет, Har07, мне просто пришлось иметь дело с добавлением объявления xml и мысли, это можно было бы сделать аналогичным образом, но это не так. Я добавил ответ с (довольно очевидным) решением ... – Shnugo