【发布时间】:2020-06-24 00:27:45
【问题描述】:
我正在使用 Microsoft Sql 2012 Express
使用“Soap Service”中的“sp_OAGetProperty”,我得到一个“nvarchar (max)”值,如下所示。
--uuid:ec76ddb3-a0ef-4e4d-980d-2dcddd967e44+id=343 Content-ID:
<http://tempuri.org/0> Content-Transfer-Encoding: 8bit Content-Type: application/xop+xml;charset=utf-8;type="application/soap+xml"
<s:Envelope
xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Body
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<LoginResponse
xmlns="http://tempuri.org/">
<LoginResult>true</LoginResult>
<sessionID>eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIwZmIxNTVhMi0wOTgwLTQwMGQtODdkOC1kYTQ4MzZiMTk1YzEiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9zaWQiOiI5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZSI6IlVCTDJAVEVTVC5DT00jghjghU</sessionID>
</LoginResponse>
</s:Body>
</s:Envelope>
--uuid:ec76ddb3-a0ef-4e4d-980d-2dcddd967e44+id=343--
我正在尝试使用代码从这个 XML 中获取 LoginResult、sessionID 值。
我也将使用此编码延续。示例我将启动另一个“soapService”并发送 sessionID。
EXEC sp_xml_preparedocument @Yanit OUTPUT,
@XML
SELECT LoginResult,
sessionID
FROM OPENXML(@XML, 's:Envelope/s:Body/LoginResponse')
WITH
(
LoginResult [varchar](500) 'LoginResult',
sessionID [varchar](500) 'sessionID'
)
EXEC sp_xml_removedocument @Yanit
这是我上次尝试的代码,但它返回错误消息给我。
消息 225,级别 16,状态 12,行 193 为函数“OpenXML”提供的参数无效。
【问题讨论】:
标签: sql-server soap openxml