Не удается разрешить пространство имен при анализе XML с помощью XDocument

1

Мне нужна помощь в анализе этого 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 "", не удался. Мне нужно только получить тег "MensajeError"

Благодарю!

Теги:

1 ответ

1
Лучший ответ

Вы можете просто использовать LocalName:

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

//nodeValue = "error1"
  • 1
    Спасибо! не знал, что собственность существует. Это то, что мне было нужно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню