1 在 SQL 語句後使用 for XML 子句。
[ FOR { XML { RAW | AUTO }
[ , XMLDATA ]
[ , ELEMENTS ]
[ , BINARY BASE64 ] } ]
將得到一個無根節點的XML片斷。
1.1 for XML raw
結果為
1.2 for XML auto
結果為 <表名 列名="value" 列名="value" ... /><表名 ... />...
1.3 for xml raw,XMLdata
結果為
1.3.1 for xml auto,XMLdata
1.4 elements使列作為子元素返回,binary base64采用base64編碼表示二進制數據。
使用 HTTP 訪問 SQL Server 並返回XML數據
1 安裝 IIS5.1 和 SQL Server 2000 以上版本。
2 使用SQL Server 的 '在 IIS 中配置SQL XML 支持' 工具創建一個虛擬目錄。
2.1 在 '常規' 選項卡 輸入 虛擬目錄 名稱,例如 Test。
2.2 在 '安全性' 輸入賬號密碼等等身份驗證信息。
2.3 '數據源' 可以選擇要連接的數據庫。
2.4 '設置'選項卡裡面有些細則,默認只有一個允許模板。
2.4.1 如果想用url?sql=sqlString 或者 url?sql= 2.4.2 XPATH允許在URL後使用xpath表達式過濾得到的數據,POST允許通過表達提交查詢。
2.5 在URL中指定數據庫和表的名稱。
2.5.1 在'虛擬名稱'中創建相應的虛擬名稱,如'http://localhos/database/table/...'。
3 使用 SQL XML 進行查詢。
3.1 使用 GET 提交,在 URL 後附加 SQL 語句:
[url]http://localhos/test?sql=select+[/url]*+from+table+for+XML+auto&root=root
root=root可以指定根節點 3.2 使用 XML模板 進行查詢。
3.2.1 直接在 URL 中指定模板。
[url]http://localhos/test?template=[/url] URL 中附加模板存在安全和長度限制,可以使用模板文件。
3.2.2 使用模板文件,例:
建立一個文本文件tmp.XML
select * from table for XML auto
存放在虛擬目錄test內。
使用URL 'http://localhos/test/tmp.XML' 便可以得到結果。
3.2.2.1 使用XPATH
[url]http://localhos/test/tmp.XML/col[/url][@att="1"]
'...tmp.xml/'後即可以接xpath表達式進行篩選,語法和普通XML中一樣。