首页 > 解决方案 > LINQ to XML 选择不等于某个值的属性值

问题描述

为什么这不起作用?我正在尝试选择状态值不是“0”的属性。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
    <Auth status="0"></Auth>
    <Modify status="601"></Modify>
</response>

LINQ 转 XML

var errorcodeList = xml.Descendants("response")
                     .Where(x => x.Attribute("status").Value != "0")
                     .Select(x => x.Attribute("status").Value)
                     .ToList();

结果我期望得到“601”,但我根本没有得到任何元素。

标签: linq-to-xml

解决方案


这似乎是一个小问题:您正在尝试读取response元素的属性。

以下代码访问 的后代response并返回正确的值:

var errorcodeList = xml.Descendants("response")
                       .Descendants()
                       .Where(x => x.Attribute("status").Value != "0")
                       .Select(x => x.Attribute("status").Value)
                       .ToList();

推荐阅读