c# - 选择子元素具有值的 XElement

标签 c# linq linq-to-xml

给定以下 XML:

<platforms>
  <platform>
    <id>1</id>
    <price>2.99</price>
  </platform>
</platforms>

如何根据值为“1”的子元素“id”选择“platform”元素作为 XElement 对象?

我已经走到这一步了:

XDocument xPlatformXml = new XDocument();
XElement xel = xPlatformXml.Element("platforms").Elements("platform").Where(x => x.Value == "1").SingleOrDefault();

但这是在寻找“平台”元素而不是“id”中的值。

最佳答案

XDocument xPlatformXml = new XDocument();
XElement xel = xPlatformXml.Element("platforms")
                           .Elements("platform")
                           .Where(x => x.Element("id").Value == "1")
                           .SingleOrDefault();

或者使用XElementint的转换:

XDocument xPlatformXml = new XDocument();
XElement xel = xPlatformXml.Element("platforms")
                           .Elements("platform")
                           .Where(x => (int)x.Element("id") == 1)
                           .SingleOrDefault();

关于c# - 选择子元素具有值的 XElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15199326/

相关文章:

c# - 例如,是否有可能销毁/删除 self ?

c# - 当 scriptmanager 调用 jquery 对话框时页面消失

c# - LINQ to Objects - 绑定(bind)到 ListView

c# - 返回 XDocument 深处的元素值

linq-to-xml - XNode 和 XElement 之间没有隐式转换

c# - 为什么构造函数是邪恶的?

c# - 无法反序列化 Withings 响应

c# - 如何使用空数组执行 Zip 操作

c# - 如何使用 LINQ 按深度级别对对象层次结构进行排序?

c# - 在解析 XDocument 时处理空 XElement