,我通過響應流中獲取XML:XML SOAP獲取元素從的XElement
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<generateSSOResponse xmlns="http://url.com">
<generateSSOReturn>2DKtjZNq58THggh42lNsGvgGTjF8RSBA</generateSSOReturn>
</generateSSOResponse>
</soapenv:Body>
</soapenv:Envelope>
的代碼使用嘗試並獲得了「generateSSOResponse」令牌值。
var xmlDoc = XElement.Parse(s);
var ssoToken = xmlDoc.XPathSelectElement("/soapenv:Envelope[@xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"]/soapenv:Body/generateSSOResponse[@xmlns=\"http://ws.configureone.com\"]/generateSSOReturn");
Error: Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function.
說我需要一個命名空間管理?我雖然那是在處理XMLdoc而不是xElement?這裏有什麼解決方案?
編輯:變量 「s」 是響應流代碼:
using (var mem = new MemoryStream())
{
rstream.CopyTo(mem);
var b = mem.ToArray();
var s = System.Text.Encoding.UTF8.GetString(b);
謝謝你,我嘗試了一些變化,並得到它在linqpad工作沒有問題.....但是代碼去的地方是沒有XMLtoLinq的地方:(哦,哦,病得必須找到另一條路線 – lemunk