在使用XDocument解析XML时无法解析名称空间

时间:2014-10-28 12:44:47

标签: c# .net xml

我需要一些帮助来解析这个XML。

我收到以下字符串,我需要获取" MensajeError"的值。

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <WS_SSPBA_001_SResponse xmlns="http://tempuri.org/">
      <WS_SSPBA_001_SResult>
        <Estado>boolean</Estado>
        <Mensaje>string</Mensaje>
        <CodigoError>string</CodigoError>
        <MensajeError>error1</MensajeError>
      </WS_SSPBA_001_SResult>
    </WS_SSPBA_001_SResponse>
  </soap:Body>
</soap:Envelope>

我使用Body标签,但我无法进一步解析XML

var xDocument = XDocument.Parse(resultado);
        XNamespace soapenv = "http://schemas.xmlsoap.org/soap/envelope/";
        var xElements =
            xDocument.Descendants(soapenv + "Body").First()

我试图解析que标签&#34;&#34;失败。我只需要检索标签&#34; MensajeError&#34;

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用LocalName:

var nodeValue = XDocument.Parse(resultado)
                         .Descendants()
                         .First(n => n.Name.LocalName == "MensajeError")
                         .Value;

//nodeValue = "error1"