Sql server 无法使用SchemaId读取XML

Sql server 无法使用SchemaId读取XML,sql-server,Sql Server,ImporterNr、ForwarderNr、AddressType三列返回空值我做错了什么吗请给出建议 声明@XML SET@XML= SELECT Cust.value('(ImporterNr)[1]', 'nvarchar(50)') AS 'ImporterNr', Cust.value('(ForwarderNr)[1]', 'nVarchar(50)') AS 'ForwarderNr', Cust.value('(Items/Item/AddressType)

ImporterNr、ForwarderNr、AddressType三列返回空值我做错了什么吗请给出建议

声明@XML SET@XML=

SELECT
   Cust.value('(ImporterNr)[1]', 'nvarchar(50)') AS 'ImporterNr',
   Cust.value('(ForwarderNr)[1]', 'nVarchar(50)') AS 'ForwarderNr',
    Cust.value('(Items/Item/AddressType)[1]', 'nVarchar(50)') AS 'AddressType'
FROM
   @XML.nodes('/Dealer/Head') AS AOC(Cust)
'
ZZ840
XYZA
先生
FZ12325
L
KZ经销商有限公司
KZ D
经销商T
Riverpol Romerro Calle 31D第12-25号
SG
1234
麦基
L
阿利亚夫
K V
瓦勒杜帕尔酒店
CARRERA 19 KM 0-700俱乐部拉科里沃·鲁达托
佐
123
瓦勒杜帕尔
'

如果存在多个节点,查询将不起作用。

将名称空间添加到查询中:

'<?xml version="1.0" encoding="UTF-8"?>
<Dealer schemaID="DL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.abc.zy/kudos/kentucy/ik schema13_dealer(dl).xsd">
   <Head>
      <ImporterNr>ZZ840</ImporterNr>
      <ForwarderNr>XYZA</ForwarderNr>
      <RecordType>MR</RecordType>
      <Filename>FZ12325</Filename>
      <Items>
         <Item>
            <AddressType>L</AddressType>
            <DealerNr>KZ DEALER LLC</DealerNr>
            <ShortName>KZ D </ShortName>
            <DealerName>DEALER T </DealerName>
            <Street>Riverpol Romerro Calle 31D No. 12-25</Street>
            <Country>SG </Country>
            <ZIP>1234</ZIP>
            <Town>MCGY</Town>
         </Item>
         <Item>
            <AddressType>L</AddressType>
            <DealerNr>ALIAV</DealerNr>
            <ShortName>K V </ShortName>
            <DealerName>K T VALLEDUPAR                              </DealerName>
            <Street>CARRERA 19 KM 0-700 CLUB DEPORTIVO RUDATO         </Street>
            <Country>ZO </Country>
            <ZIP>123       </ZIP>
            <Town>VALLEDUPAR                                        </Town>
         </Item>
      </Items>
   </Head>
   </Dealer>'
Declare@XML
SET@XML=
'
ZZ840
XYZA
先生
FZ12325
L
KZ经销商有限公司
KZ D
经销商T
Riverpol Romerro Calle 31D第12-25号
SG
1234
麦基
'
;使用XMLNAMESPACES('http://www.abc.zy/kudos/kentucy“作为ns1)
挑选
客户价值(‘(ns1:ImporterNr)[1],‘nvarchar(50)’)作为‘ImporterNr’,
客户价值(“(ns1:ForwarderNr)[1]”,将“nVarchar(50)”作为“ForwarderNr”,
客户值('(ns1:Items/ns1:Item/ns1:AddressType)[1],'nVarchar(50)'作为'AddressType'
从…起
@XML.nodes('/ns1:Dealer/ns1:Head')作为AOC(Cust)

或者将其从XML中删除。

非常感谢。我只想知道如果存在多个节点,该怎么办。ie@explore365请更新您的问题,或创建一个新问题
'<?xml version="1.0" encoding="UTF-8"?>
<Dealer schemaID="DL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.abc.zy/kudos/kentucy/ik schema13_dealer(dl).xsd">
   <Head>
      <ImporterNr>ZZ840</ImporterNr>
      <ForwarderNr>XYZA</ForwarderNr>
      <RecordType>MR</RecordType>
      <Filename>FZ12325</Filename>
      <Items>
         <Item>
            <AddressType>L</AddressType>
            <DealerNr>KZ DEALER LLC</DealerNr>
            <ShortName>KZ D </ShortName>
            <DealerName>DEALER T </DealerName>
            <Street>Riverpol Romerro Calle 31D No. 12-25</Street>
            <Country>SG </Country>
            <ZIP>1234</ZIP>
            <Town>MCGY</Town>
         </Item>
         <Item>
            <AddressType>L</AddressType>
            <DealerNr>ALIAV</DealerNr>
            <ShortName>K V </ShortName>
            <DealerName>K T VALLEDUPAR                              </DealerName>
            <Street>CARRERA 19 KM 0-700 CLUB DEPORTIVO RUDATO         </Street>
            <Country>ZO </Country>
            <ZIP>123       </ZIP>
            <Town>VALLEDUPAR                                        </Town>
         </Item>
      </Items>
   </Head>
   </Dealer>'
Declare @XML XML
SET @XML =
'<?xml version="1.0" encoding="UTF-8"?>
<Dealer schemaID="DL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.abc.zy/kudos/kentucy/ik schema13_dealer(dl).xsd">
   <Head>
      <ImporterNr>ZZ840</ImporterNr>
      <ForwarderNr>XYZA</ForwarderNr>
      <RecordType>MR</RecordType>
      <Filename>FZ12325</Filename>
      <Items>
         <Item>
            <AddressType>L</AddressType>
            <DealerNr>KZ DEALER LLC</DealerNr>
            <ShortName>KZ D </ShortName>
            <DealerName>DEALER T </DealerName>
            <Street>Riverpol Romerro Calle 31D No. 12-25</Street>
            <Country>SG </Country>
            <ZIP>1234</ZIP>
            <Town>MCGY</Town>
         </Item>
      </Items>
   </Head>
   </Dealer>'

;WITH XMLNAMESPACES ('http://www.abc.zy/kudos/kentucy' as ns1)
SELECT
   Cust.value('(ns1:ImporterNr)[1]', 'nvarchar(50)') AS 'ImporterNr',
   Cust.value('(ns1:ForwarderNr)[1]', 'nVarchar(50)') AS 'ForwarderNr',
   Cust.value('(ns1:Items/ns1:Item/ns1:AddressType)[1]', 'nVarchar(50)') AS 'AddressType'
FROM
   @XML.nodes('/ns1:Dealer/ns1:Head') AS AOC(Cust)