У меня проблемы с пониманием, как читать данные из XML. XML выглядит так:
<PosXML version = "7.2.0">
<ReadCardResponse>
<ReturnCode>1</ReturnCode>
<Card>
<Pan>222300******5062</Pan>
<Expires>****</Expires>
<CardName>MASTERCARD</CardName>
<CardSource>2</CardSource>
</Card>
</ReadCardResponse>
</PosXML>
Я загрузил XML из потока:
XDocument doc;
using (Stream responseStream = httpResponse.GetResponseStream())
{
doc= XDocument.Load(responseStream);
}
Пробовал, но не работает:
XElement returnCode = doc.XPathSelectElement("ReturnCode")
Прочтите Выражения XPath. Выражения XPath можно использовать для выбора любого узла или атрибута. Затем вы можете использовать SelectNodes или SelectSingleNode с XPath Expression для узла, который хотите прочитать.





var returnCode = doc.XPathSelectElement(@"PosXML/ReadCardResponse/ReturnCode");
Вам нужно использовать полный путь к элементу
Пытаться:
XElement returnCode = doc.Element("ReadCardResponse").Element("ReturnCode")
Вы также можете получить доступ к элементам с помощью XPath, nodes или некоторого запроса linq. Попробуйте поиграть с intellisense вашей IDE
XPath
ReturnCodeнедействителен. С вашим XML XPath должен быть чем-то вроде (непроверенного)ReadCardResponse\ReturnCode. Вы можете проверить документ XPath для более сложных запросов XPath