3

我正在使用 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>

请帮忙...

谢谢,

附言

4

0 回答 0