use*_*412 -1 c# xml linq-to-xml
我的XML看起来如此:
<sensor>
<data>26.7</data>
<data>54.53</data>
<log>false</log>
</sensor>
Run Code Online (Sandbox Code Playgroud)
要检索列表中的数据字段,我使用:
List<string> list = xml.Root.Descendants("sensor").Elements("data").Select(element => element.Value).ToList();
Run Code Online (Sandbox Code Playgroud)
它运作良好.
有时XML看起来像这样(log = true):
<sensor>
<data>26.7</data>
<data>54.53</data>
<log>true</log>
</sensor>
Run Code Online (Sandbox Code Playgroud)
我想忽略这些价值观.我怎样才能做到这一点?
我试过这个:
var lastUser = xml.Element("response").Descendants("sensor")
.First(u => u.Element("data") != null
&& u.Element("log").Value == "false");
Run Code Online (Sandbox Code Playgroud)
但我只能检索当然只有第一个值.
First如果您不想选择第一个元素,为什么要使用?请Where改用.
var data = xml.Element("response")
.Descendants("sensor")
.Where(x => ((string)x.Element("log")) == "false")
.Elements("data")
.Select(x => x.Value)
.ToList();
Run Code Online (Sandbox Code Playgroud)