我正在使用 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>
但我还想在根之后添加一些静态元素,比如标题和日期。我能够做到这一点,但是随后,命名空间标签也出现在我不想要的元素中。请注意,我想要一些带有命名空间前缀的元素,例如,
我为此使用的查询是:
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>
请帮忙...
谢谢,
附言