我试图从SQL Server读取XML文件。我认为这是与命名空间的问题.. 这是我简单的XML的例子:SQL Server命名空间
<?xml version="1.0"?>
<ArrayOfStatistica xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.datacontract.org/2004/07/LiveUpdateWS">
<Statistica>
<BuildFinale>68</BuildFinale>
<BuildIniziale>1</BuildIniziale>
<DataInserimento>2014-11-21T09:34:25.387</DataInserimento>
<IdCliente>-1</IdCliente>
<IdOperazione>4</IdOperazione>
<IdRivenditore>-1</IdRivenditore>
<IdTipoProdotto>-1</IdTipoProdotto>
<IdUtente>2</IdUtente>
<IdVersione>3</IdVersione>
</Statistica>
<Statistica>
<BuildFinale>68</BuildFinale>
<BuildIniziale>1</BuildIniziale>
<DataInserimento>2014-11-21T09:37:43.84</DataInserimento>
<IdCliente>-1</IdCliente>
<IdOperazione>4</IdOperazione>
<IdRivenditore>-1</IdRivenditore>
<IdTipoProdotto>-1</IdTipoProdotto>
<IdUtente>2</IdUtente>
<IdVersione>3</IdVersione>
</Statistica>
</ArrayOfStatistica>
用下面的代码:
;WITH XMLNAMESPACES ('http://schemas.datacontract.org/2004/07/LiveUpdateWS"' AS ArrayOfStatistica)
SELECT
(SELECT Child.value('(IdStatistica)[1]', 'bigint')),
(SELECT Child.value('(IdUtente)[1]', 'int')),
(CASE WHEN Child.value('(IdRivenditore)[1]', 'int') = -1 THEN NULL else (SELECT Child.value('(IdRivenditore)[1]', 'int')) end),
(CASE WHEN Child.value('(IdCliente)[1]', 'int') = -1 THEN NULL else (SELECT Child.value('(IdCliente)[1]', 'int')) end),
(SELECT Child.value('(DataInserimento)[1]', 'datetime')),
(CASE WHEN Child.value('(IdTipoProdotto)[1]', 'int') = -1 THEN NULL else (SELECT Child.value('(IdTipoProdotto)[1]', 'int')) end),
(SELECT Child.value('(IdVersione)[1]', 'int')),
(SELECT Child.value('(BuildIniziale)[1]', 'bigint')),
(SELECT Child.value('(BuildFinale)[1]', 'bigint')),
(SELECT Child.value('(IdOperazione)[1]', 'int'))
FROM
@xmlfile.nodes('ArrayOfStatistica/Statistica') AS N(Child)
我没有得到任何选择值。
我应该如何设置这个XML文件的命名空间? 如果我删除了XML命名空间的线(http://schemas.datacontract.org/2004/07/LiveUpdateWS “的xmlns:I =” http://www.w3.org/2001/XMLSchema -instance“>) 一切工作正常
为什么你有'(SELECT Child.value(...))'而不是仅仅是'Child.value(...)'?你为什么觉得你需要命名空间? (我的意思是,如果没有它,那就去没有它?) – 2014-11-24 17:34:14