0
成分を含むレシピをサブ要素として持つレシピデータベースのxmlファイルを生成しようとしています。SQL Server FOR XML EXPLICITを使用した正しい入れ子での問題
select
1 as 'Tag'
,null as 'parent'
,replace(r.recipe_name, '/', '') as 'item!1!title!element'
,isnull(replace(r.description, '/', ''), '') as 'item!1!description!cdata'
,r.recipe_id as 'item!1!recipe_id!element'
,null as 'ingredients!2!ingredient!element'
from recipe r
union all
select
2 as 'Tag'
,1 as 'parent'
,null as 'item!1!title!element'
,null as 'item!1!description!cdata'
,r.recipe_id as 'item!1!recipe_id!element'
,i.full_ingredient_txt as 'ingredients!2!ingredient!element'
from
recipe r, ingredient i
where r.recipe_id = i.recipe_id
order by 'item!1!recipe_id!element'
for xml explicit
次のXMLを生成する:
<item>
<title>3-D Cookie Packages</title>
<description><![CDATA[]]></description>
<recipe_id>52576</recipe_id>
<ingredients>
<ingredient>Assorted candy decorations, if desired</ingredient>
</ingredients>
<ingredients>
<ingredient>cup butter or margarine, softened</ingredient>
</ingredients>
<ingredients>
<ingredient>cup sugar</ingredient>
</ingredients>
</item>
私が本当にしたいことは、このように入れ子にする私の成分である:
<ingredients>
<ingredient>Assorted candy decorations, if desired</ingredient>
<ingredient>cup butter or margarine, softened</ingredient>
<ingredient>cup sugar</ingredient>
</ingredients>
私が使用することはできません私のクエリはこれですXML PATHは、このメソッドを使用してサポートされていないdescriptionフィールドにCDATA宣言が必要なためです。
は魅力的です。ありがとう。私がしなければならなかった変更は、最初の結合ステートメントの後にselectステートメントを追加することでした。 –
ちょうどそれをキャッチ.. – Rich