我需要像这样的xml:
`<root xmlns="http://www.sample.com"
<lkz>12345</lkz>
<styles>
<style>
</style>
<style>
</style>
</styles>
</root>`
我发现了这个:
how-to-generate-xml-with-element-and-attribute-using-xml-explicit
完美的我的xml问题,但我需要
<root> = <root xmlns="http://www.sample.com"
我必须要xml显式!!!! (因为cdata)
感谢
答案 0 :(得分:1)
您是否意识到/etc/nginx/conf.d
已过时的事实?你可以read this (plus the links at the end)。
你可以像这样解决这个问题:
CDATA
- 此查询会创建您要求的内容(至少我希望如此)
DECLARE @dummy TABLE(style VARCHAR(100));
INSERT INTO @dummy VALUES
('Some red style')
,('Another blue style');
结果
SELECT 1 AS Tag
,NULL AS Parent
,'http://www.sample.com' AS [root!1!xmlns]
,12345 AS [root!1!lkz!element]
,NULL AS [styles!2]
,NULL AS [style!3!!cdata]
UNION
SELECT 2
,1
,NULL
,NULL
,NULL
,NULL
FROM @dummy
UNION
SELECT 3
,2
,NULL
,NULL
,NULL
,style
FROM @dummy
FOR XML EXPLICIT
- 这是你应该解决这个问题的方法
<root xmlns="http://www.sample.com">
<lkz>12345</lkz>
<styles>
<style><![CDATA[Another blue style]]></style>
<style><![CDATA[Some red style]]></style>
</styles>
</root>
结果
WITH XMLNAMESPACES(DEFAULT 'http://www.sample.com')
SELECT 12345 AS lkz
,(
SELECT style
FROM @dummy
FOR XML PATH(''),ROOT('styles'),TYPE
)
FOR XML PATH('root');
这里唯一的问题是:由于子选择而重复的命名空间。这没有错,但很烦人。一个众所周知的问题多年(Please vote for the related connect article)。