使用命名空间解析 XML 中的数据

时间:2020-12-29 16:25:35

标签: sql-server xml-parsing

我正在尝试解析来自 SQL Server 的 XML 数据。但是,虽然我尝试了很多方法,但都没有成功。

当我运行脚本时,它没有给出错误但返回一个非记录

DECLARE @xmlData XML

SET @xmlData = '<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
      <faultcode>S:VersionMismatch</faultcode>
      <faultstring>Couldnt create SOAP message. Expecting Envelope in namespace http://schemas.xmlsoap.org/soap/envelope/, but got null </faultstring>
    </S:Fault>
  </S:Body>
</S:Envelope>
'

SET @xmlData = (SELECT @xmlData.query('declare default element namespace "http://schemas.xmlsoap.org/soap/envelope/";
/Envelope/Body'))

SELECT @xmlData

SELECT b.value('(./Fault/faultcode/text())[1]', 'Varchar(50)') AS [Name]
  FROM @xmlData.nodes('/Body') AS a (b)

1 个答案:

答案 0 :(得分:1)

使用 any

WITH XMLNAMESPACES

db<>fiddle demo

相关问题