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>

助けてください...

ありがとう、

PS

4

0 に答える 0