C# 从asp.net中Xdocument中的复杂Xml中获取特定标记值

C# 从asp.net中Xdocument中的复杂Xml中获取特定标记值,c#,asp.net,xml,tags,C#,Asp.net,Xml,Tags,由于我是初学者,我当然需要你的帮助。 我想从Xdocument获取一个特定的标记。 以下是Xdocument中的内容: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Bod

由于我是初学者,我当然需要你的帮助。 我想从Xdocument获取一个特定的标记。 以下是Xdocument中的内容:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <UcicLoginResponse xmlns="http://tempuri.org/">
      <UcicLoginResult>
        <Success>true</Success>
        <authToken>xxxxxxx</authToken>
      </UcicLoginResult>
    </UcicLoginResponse>
  </soap:Body>
</soap:Envelope>
# #
您没有指定名称空间<代码>http://tempuri.org/

var xDocument = XDocument.Parse(xml);
XNamespace ns = "http://tempuri.org/";
var authToken = xDocument.Descendants(ns + "authToken").FirstOrDefault();

我不知道xml从何而来,但似乎您正在与SOAP服务通信,最好是通过WCF客户端以对象的形式获取数据

您能分享您尝试的任何方法的代码并告诉我们您在这方面遇到了什么错误吗?@chetan尝试了以下两种方法:
XmlResponse.subjections(“soap:Envelope”).subjections(“soap:Body”).subjections(“UcicLoginResponse”).subjections(“UcicLoginResult”).Elements(“authToken”)
IEnumerable xResponseItem=XmlResponse.substands(“UcicLoginResponse”);字符串sErr=xResponseItem.subjects(“UcicLoginResult”).FirstOrDefault().Element(“authToken”).Value然后获取名称中不能包含的“:”字符(十六进制值0x3A)。对象引用未设置为对象的实例。错误Respectively@Sabi007请回答您的问题并在此处添加您的代码。不客气。如果答案有效,请将其标记为已接受。
var root = XmlResponse.Root;
var res1= root.Elements("UcicLoginResult").Elements("authToken").FirstOrDefault().Value;
var resp=XmlResponse.Descendants("soap:Envelope").Descendants("soap:Body").Descendants("UcicLoginResponse").Descendants("UcicLoginResult").Elements("authToken");
IEnumerable<XElement> xResponseItem =XmlResponse.Descendants("UcicLoginResponse");

string sErr = xResponseItem.Descendants("UcicLoginResult").FirstOrDefault().Element("authToken").Value;
var res = XmlResponse.Descendants("soap:Envelope").Descendants("soap:Body").Descendants("UcicLoginResponse").Descendants("UcicLoginResult").Elements("authToken");
var xDocument = XDocument.Parse(xml);
XNamespace ns = "http://tempuri.org/";
var authToken = xDocument.Descendants(ns + "authToken").FirstOrDefault();