LINQ to XML 选择不等于某个值的属性值

LINQ to XML Selecting attribute values that are not equal to a value

为什么这不起作用?我正在尝试 select 状态值不为“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”结果,但我根本没有得到任何元素。

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

以下代码访问 response 和 returns 的后代正确值:

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