如何在使用T-SQL查詢數據時刪除/忽略xml文件中的XML名稱空間?忽略T-SQL中的XML名稱空間
我正在加載一個xml文件到一個變量,它工作得很好。但是XML有一個命名空間設置,除非我刪除它,否則我的查詢會變空。
T-SQL:
DECLARE @xml xml
SELECT @xml = BulkColumn FROM OPENROWSET(BULK 'C:\myfile.xml', SINGLE_BLOB) AS A
SELECT X.z.value('ID[1]', 'VARCHAR(3)') FROM @xml.nodes('myroot/element') AS X(z)
XML示例:
<?xml version="1.0" encoding="utf-8"?>
<myroot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<element>
<ID>1</ID>
</element>
<element>
<ID>2</ID>
</element>
<element>
<ID>3</ID>
</element>
</myroot>
這工作,查詢將返回此:
但XML還包含了默認命名空間:
<myroot xmlns="http://XXX" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
的xmlns="http://XXX"
完全搞砸了我的查詢。不幸的是,在加載之前手動修改xml並不是真正的選擇。
問題:
- 如何刪除或忽略的命名空間時,我的數據加載到變量?
- 或者如何修改我的查詢來處理命名空間?
非常好,它完美的作品。謝謝。 :) – 2011-03-29 06:59:40