Je veux définir une instruction de traitement pour inclure une feuille de style au-dessus d'un XML:SQL Server pour XML PATH: Set-déclaration xml ou instruction de traitement "xml-stylesheet" sur
Le même problème a été la xml-déclaration (par exemple <?xml version="1.0" encoding="utf-8"?>
)
résultat souhaité:
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<TestPath>
<Test>Test</Test>
<SomeMore>SomeMore</SomeMore>
</TestPath>
Ma recherche m'a amené à test de noeud syntaxe et processing-instruction()
.
Ce
SELECT 'type="text/xsl" href="stylesheet.xsl"' AS [processing-instruction(xml-stylesheet)]
,'Test' AS Test
,'SomeMore' AS SomeMore
FOR XML PATH('TestPath')
produit ceci:
<TestPath>
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<Test>Test</Test>
<SomeMore>SomeMore</SomeMore>
</TestPath>
Tous les conseils que j'ai trouvé me dire de convertir le XML en VARCHAR, concaténer "manuellement" et reconvertir en XML. Mais c'est - comment dire - laid?
Cela fonctionne évidemment:
SELECT CAST(
'<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<TestPath>
<Test>Test</Test>
<SomeMore>SomeMore</SomeMore>
</TestPath>' AS XML);
Y at-il une chance de résoudre ce problème?
Bonne contribution, merci! Jusqu'à ce qu'ils trouvent quelque chose comme 'top-processing-instruction()' c'est un très bon travail! – Shnugo
Salut har07, je devais juste faire face à l'ajout de la déclaration xml et pensé, cela pourrait être fait de même, mais ce n'était pas le cas. J'ai ajouté une réponse avec la solution (assez évidente) ... – Shnugo