使用Linq读取XML文件不是读取元素

时间:2017-05-20 16:06:41

标签: c# xml linq

我无法从此xml响应中获取值,我将不胜感激。

<Response>
  <Result>
    <Item1>GREEN</Item1>
    <Item2>05/19/2017 22:08:14</Item2>
  </Result>
  <Other>
    <Id>xxxxxxxxxxxxc</Id>
  </Other>
</Response>

到目前为止我尝试了但结果是空的

string responseXml = response.ToXML();
XElement doc = XElement.Load(new StringReader(responseXml));
var results = from p in
              doc.Descendants("Result")
              select new
              {
                  item = p.Element("Item1").Value,
              };

foreach (var elm in results)
{
    Console.WriteLine(elm.item);
}

1 个答案:

答案 0 :(得分:0)

使用Parse而不是load。由于字符串中的额外字符,您可能还会收到错误。在你发布的字符串中有单引号。不确定单引号是否在您正在使用的实际字符串中。

            string responseXml = "<Response>" +
                               "<Result>" +
                                 "<Item1>GREEN</Item1>" +
                                 "<Item2>05/19/2017 22:08:14</Item2>" +
                               "</Result>" +
                               "<Other>" +
                                 "<Id>xxxxxxxxxxxxc</Id>" +
                               "</Other>" +
                             "</Response>";
            XElement doc = XElement.Parse(responseXml);
            var results = from p in
                              doc.Descendants("Result")
                          select new
                          {
                              item = p.Element("Item1").Value,
                          };

            foreach (var elm in results)
            {
                Console.WriteLine(elm.item);
            }