c# - 获取与 LINQ to XML 中的模式匹配的属性值的 C# Lambda 方法语法
问题描述
我有以下 XML 片段,并想提取不为零的状态属性值。我可以获得符合条件的元素,但我真正想要的是状态属性的值。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
<Auth status = "0">Moo</Auth>
<Add status = "817">Cow</Add>
<Add status = "888">Brown</Add>
<Add status = "123">Dog</Add>
</response>
这个 lambda 语法带回了匹配元素的列表,但我需要的是状态值列表,而不是具有这些值的元素列表。
var errcodeList = xml.Descendants("Add").Where(x => x.Attribute("status").Value != "0").Attributes("status");
解决方案
您可以使用Select将集合投影到您想要的特定结果。例如:
var errcodeList = xml.Descendants("Add").Where(x => x.Attribute("status").Value != "0").Select(x => x.Attribute("status").Value);
推荐阅读
- typescript - 由于存在 connectRouter 和 persistReducer,createStore 抛出未知错误
- google-sheets - 两个单元格的条件格式
- html - Flex 表格列宽适合内容
- c# - 如何用 using 语句包围对动态对象的每次调用?
- docker - 如何将日志从 jwilder/nginx-proxy docker 映像发送到 logstash?
- c# - 使用“Visual Studio 安装程序”创建的安装程序安装应用程序后未打开应用程序
- math - 天才数学工具:如何将分数答案显示为小数?
- javascript - 字形完全渲染后如何调用 JS 函数或 Python 方法?
- python - 如何编辑类的实例?
- r - 使用 ggplot 2 突出显示几个特定点