2009-10-28 36 views
0

我執行這個查詢生成XML文件無法得到所需的輸出,同時從SQL查詢從SQL Server

select category "ROOT/category", 
question "Category/question", 
option1 "Category/option1" 
from testDB2 for XML PATH ('ROOT') , ELEMENTS 

目前,該數據庫中有三個條目和XML文件我得到的是這種

<ROOT> 
    <ROOT> 
    <category>maths</category> 
    </ROOT> 
    <Category> 
    <question>2+2?</question> 
    <option1>1</option1> 
    </Category> 
</ROOT> 
<ROOT> 
    <ROOT> 
    <category>maths</category> 
    </ROOT> 
    <Category> 
    <question>100*0</question> 
    <option1>0</option1> 
    </Category> 
</ROOT> 
<ROOT> 
    <ROOT> 
    <category>chemistry</category> 
    </ROOT> 
    <Category> 
    <question>H2O?</question> 
    <option1>water </option1> 
    </Category> 
</ROOT> 

我不想要這個,我只想要一個只有一個主父節點的文件,其餘的只是其子節點,每個子節點可以是其他子節點的父節點,但在這種情況下應該只有一個主父節點每行是一個獨立的父母,並且沒有主父母或單親父母

我希望我能夠正確地告訴我的問題。由於

+0

嗨似乎有問題,我沒有發佈問題的完整描述。 – Ray 2009-10-28 19:10:59

+0

對不起,我無法弄清楚如何發佈我從這個頁面上的這個查詢得到的輸出,如果你能弄清楚我遇到的問題會很好,否則我要求人們刪除這篇文章我可以開始以不同的方式再次告訴它 – Ray 2009-10-28 19:13:21

+0

已修復.......... – 2009-10-28 19:15:21

回答

2

嘗試這樣:

select category, question, option1 from testdb2 for xml raw('Category'), elements, root('Categories')

爲XML RAW:這會讓每一行的一個節點在你的桌子,每列的XML RAW節點 (「用戶屬性'):這與xml raw相同,但是您爲xml raw('user')元素指定節點 的名稱:從屬性視圖切換到節點視圖。每列將在你的行節點一個節點 根(「用戶」):你可以用它來命名你的父母根

希望這有助於

+0

嘿感謝它的人工作 – Ray 2009-10-28 21:25:53

+0

嘿...這就像一個魅力...我試着這個很長... – 2010-04-08 14:32:20

0

不是100%肯定它是什麼,你真正想要的,但這個怎麼樣:

SELECT 
    category '@Name', 
    question "Category/question", 
    option1 "Category/option1" 
FROM 
    dbo.testDB2 
FOR XML PATH('Category'), ROOT('ROOT') 

這是否接近你想要什麼?如果我沒有記錯(現在不能測試),這應該給你這樣的:

<ROOT> 
    <Category Name="maths"> 
     <question>100*0</question> 
     <option1>0</option1> 
    </Category> 
    <Category Name="chemistry"> 
     <question>H2O?</question> 
     <option1>water </option1> 
    </Category> 
    </ROOT> 

如果沒有 - 你可以發佈數據的幾樣行,你所期望的,從讓你SELECT到底?

Marc