我使用SQL Server2008 FOR XML子句使用bcp生成XML文件。
当我使用以下查询时,结果很好:
WITH XMLNAMESPACES (
'http://base.google.com/ns/1.0' AS g,
DEFAULT 'http://www.w3.org/2005/Atom'
)
select ID, Name AS "g:Name" from PaymentMethods For XML PATH ('entry'), Root('feed')
结果:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
<entry>
<ID>1</ID>
<g:Name>BPay</g:Name>
</entry>
<entry>
<ID>2</ID>
<g:Name>Cash</g:Name>
</entry>
</feed>
但我还想在Root之后添加一些静态元素,比如Title和date。我能够做到这一点,但是,名称空间标签也出现在我不想要的元素中。请注意,我想要一些带有名称空间前缀的元素,例如
我正在使用的查询是:
WITH XMLNAMESPACES (
'http://base.google.com/ns/1.0' AS g,
DEFAULT 'http://www.w3.org/2005/Atom'
)
SELECT
'Google Feed' As Title,
CONVERT(Date, getdate()) As Updated,
(
select ID, Name AS "g:Name" from PaymentMethods For XML PATH ('entry'), TYPE
)
FOR XML PATH(''), Root('feed')
我得到的结果是:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
<Title>Google Feed</Title>
<Updated>2012-06-27</Updated>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
<ID>1</ID>
<g:Name>BPay</g:Name>
</entry>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
<ID>2</ID>
<g:Name>Cash</g:Name>
</entry>
</feed>
我希望得到如下结果:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
<Title>Google Feed</Title>
<Updated>2012-06-27</Updated>
<entry>
<ID>1</ID>
<g:Name>BPay</g:Name>
</entry>
<entry>
<ID>2</ID>
<g:Name>Cash</g:Name>
</entry>
</feed>
请帮忙......
谢谢,
PS