【发布时间】:2021-12-21 01:36:07
【问题描述】:
我有以下从 api 返回的 xml:
<?xml version="1.0" encoding="utf-8"?>
<response>
<error>
<errorcode>1002</errorcode>
<errortext>there is already an open session</errortext>
</error>
</response>
我想阅读错误代码。我写了以下代码:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(result1);
XmlNode node = xmlDoc.DocumentElement.SelectSingleNode("/response").ChildNodes[0].ChildNodes[0].InnerText
有没有其他方法可以通过使用 linq 或其他技术来做到这一点?
我使用api调用如下
HttpClientHandler handler = new HttpClientHandler();
HttpClient client = new HttpClient(handler);
var result = client.GetAsync(new Uri("https://api/access.mth?username=xyz&password=xyz@2021)).GetAwaiter().GetResult();
StreamReader reader = new StreamReader(result.Content.ReadAsStringAsync().Result);
【问题讨论】:
-
更简单消费还是更简单写?答案不会一样。使用其他人建议的序列化将简化代码的使用,但会更难实现。您想简化哪一方面?也就是说,您可以使用此 XPath 简化代码:
xmlDoc.DocumentElement.SelectSingleNode("/response/error/errorCode").InnerText
标签: c# xml-parsing