用于将 XML 内容解析为类的 LINQ 查询

2024-04-02

我有一个 xml,我试图通过 LINQ 查询从中提取一些信息。
xml 文件的格式如下所示:

<TopNode>
  <Sample name="Tom" id="0" batch="1">
    <Sequences>
      <NextItem id="10">Stand1 &gt;</NextItem>
      <PreviousItem id="9">Stand2 &gt;</PreviousItem>
    </Sequences>
  </Sample>
  <Sample name="Hill" id="1" batch="1">
    <Sequences>
      <NextItem id="1">Stand1 &gt;</NextItem>
      <NextItem id="2">Stand3 &gt;</NextItem>
      <PreviousItem id="3">Stand4 &gt;</PreviousItem>
    </Sequences>
  </Sample>
.
.
.
</TopNode>

我必须获得两者的属性列表NextItem and PreviousItem从查询中。为此,我定义了一个类来获取结果。

public class Extract
{
public string name 
{
get;
set;
}
public int _id
{
get;
set;
}
}

LINQ查询(对于每个Sample节点,获取类对象中的PreviousItem和NextItem内容):

var EnumerableContent = from item in XElement.Load("file.xml").Elements("NextItem")
              select ???...

问题是如何将数据传递到上面查询中每个 Sample 节点的类对象。
。 其次,上面只会得到 NextItem 节点。如何编写 NextItem 和 PreviousItem 的查询?

EDIT总的来说,我必须为每个得到一个 IEnumerableSequence节点,然后从查询返回整个 IEnumerable。

EDIT2分配key这是给我这个错误。查询如下

var mapping = XDocument.Load("file.xml")
                          .Descendants("Sequences")
                          .Select(n => n.Descendants("PreviousItem")
                              .Union(n.Descendants("NextItem"))
                              .Select(n1 => new Extract { _id = (int)n1.Attribute("id"), Name = n1.Value })
                              ).ToDictionary<IEnumberable<Menu>, int>(key => key._id);//and further converting this dictionary to sorted dictionary (sorted accordign to keys)

var xDoc = XDocument.Load(....);
var result = xDoc.Descendants("NextItem")
  .Union(xDoc.Descendants("PreviousItem"))
  .Select(n => new {ID = n.Attribute("id").Value, Name =n.Name, Value =n.Value });

--EDIT--

var result = XDocument.Load(....)
            .Descendants("Sequences")
            .Select(n=> n.Descendants("NextItem")
                 .Union(n.Descendants("PreviousItem"))
                 .Select(n2 => new { ID = n2.Attribute("id").Value, Name = n2.Name, Value = n2.Value })
            );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于将 XML 内容解析为类的 LINQ 查询 的相关文章

随机推荐

  • 如何在 Electron BrowserWindow 中查看 PDF?

    所以我有这个 Electron 应用程序 在一个 html 文件中 我链接了另一个脚本 该脚本为程序提供了一些实用功能 其中之一是 function openPDF filePath let pdfWindow new electron r
  • Logstash 的 Java 过滤器

    你知道 Logstash 有一个 Ruby 过滤器 它使我能够用 Ruby 编写代码 它通常包含在配置文件中 如下所示 filter ruby code gt 现在我有两个 Jar 文件 我想将它们包含在过滤器中 以便可以根据我在这些 Ja
  • c++0x 中用户定义文字的重载规则

    我对超载规则有点困惑 假设有以下文字运算符 unsigned long long operator xx unsigned long long cooked literal int 1 unsigned long long operator
  • stringbuilder 调用中的 Java 字符串连接

    据我所知 StringBuilder 在连接期间不在字符串池中创建临时字符串实例 从而有助于减少内存使用量 但是 如果我这样做会发生什么 StringBuilder sb new StringBuilder bu sb append b u
  • Meteor - 设置文档标题

    有没有办法改变
  • 如何自动测试基于浏览器的应用程序? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如果它是一个Windows程序 我会使用Auto it http www autoitscript com autoit3 index s
  • R data.table 在导出函数中中断

    我在让 data table 在 roxygen2 导出函数中工作时遇到问题 这是一个名为 foo R 位于我的包的 R 目录中 的文件中的一个简单的假函数 它使用 data table Data table test function e
  • jQuery 验证(至少一个字段有文本)

    我的这个页面有几个 TextAreas asp net mvc 我需要验证这些字段中至少有一个包含文本 我怎样才能用 jQuery 做到这一点 这是我拥有的 textAreas 的一个示例 假设您没有使用验证插件并且所有文本区域都有 Esp
  • 在 Prolog 中编辑 Eliza 聊天机器人

    我一直在努力尝试在 Prolog 中编辑 Eliza 聊天机器人 每次我尝试编辑某些内容时 都会出现新的错误 它是否受到任何形式的编辑保护 我使用 SWI prolog 编辑器进行编辑 问题是我试图在没有完全理解代码的情况下最小化代码 我正
  • Java Eclipse 错误“未找到源。”

    我是编程世界的新手 我正在尝试编写一个简单的程序 从文件中读取并输出单个数字 我相信我在代码中设置了所有内容 我是否需要对 txt 文件的位置执行任何特殊操作才能使程序读取该文件 package pack import java util
  • 在Python中将十六进制值转换为RGB值

    在这里处理杰里米的回应 将十六进制颜色转换为 RGB 反之亦然 https stackoverflow com questions 214359 converting hex color to rgb and vice versa我能够获得
  • 接口是否位于继承链中?

    网上有两种说法Interface 那是陈述A 接口不属于继承链 其他声明B 接口可以继承其他接口 http msdn microsoft com en us library ms173156 28v vs 80 29 aspx 这两种说法是
  • NodeJS应用程序出现内存泄漏,它在哪里?

    我有一个 NodeJs 应用程序 它通过 Redis 服务器上的订阅来侦听消息 它会收集 5 秒的消息 然后将它们推送到连接的客户端 代码如下所示 io sockets on connection function socket nClie
  • 在 TypeScript 中实现接口原型

    我创建了一个TypeScript我的服务结果界面 现在我想为里面的两个函数定义一个基本功能 问题是我收到错误 Support 类型的值不存在属性 ServiceResult I use WebStorm为发展 VS2012让我紧张 因为大型
  • 如何合并两个数据框?

    我有一个初始数据框D 我从中提取两个数据帧 如下所示 A D D label k B D D label k 我想结合A and B到一个数据帧中 数据的顺序并不重要 然而 当我们采样时A and B from D 他们保留索引D 已弃用
  • 迭代 python 列表的最佳方法是什么,排除某些值并打印结果

    我是 python 新手 有一个问题 我检查过类似的问题 检查了教程深入Python 检查了 python 文档 googlebinging 类似的 Stack Overflow 问题和十几个其他教程 我有一段 Python 代码 用于读取
  • 创建 GSON 对象

    如何使用 Google Gson 创建 json 对象 以下代码创建一个 json 对象 如下所示 name john JsonObject jsonObject new JsonObject jsonObject addProperty
  • Varnish hit-for-pass 是什么意思?

    Varnish 版本 3 有一些用于不同操作的对象 例如 当它必须从后端检索数据时使用pass 当它在缓存中找到请求内容时使用hit 但我无法理解 hit for pass 的用法 Varnish什么时候使用它 我在网上没有找到任何有用的材
  • 当文件被删除并再次创建时,inotify 停止监视文件

    我在使用inotify时遇到一些问题 我使用 inotify 来监视文件的更改 这是我的代码 int fd inotify init int wd inotify add watch fd root temp IN ALL EVENTS i
  • 用于将 XML 内容解析为类的 LINQ 查询

    我有一个 xml 我试图通过 LINQ 查询从中提取一些信息 xml 文件的格式如下所示