LINQ to XML 提取嵌套元素

2024-03-01

我对 LINQ 和 XML 解析很陌生,对 C# 编程也很陌生。对于以下 XML 结构,我尝试提取嵌套元素:

  <persons>
    <person>
      <personNumber>2</personNumber>
      <info>free text</info>
      <addresses>
        <address>
          <city>XXX</city>
          <location>1</location>
        </address>
        <address>
          <city>YYY</city>
          <location>2</location>
        </address>
      </addresses>
    </person>
    <person>
      <personNumber>3</personNumber>
      <info>free text</info>
      <addresses>
        <address>
          <city>XXX</city>
          <location>1</location>
        </address>
        <address>
          <city>YYY</city>
          <location>2</location>
        </address>
      </addresses>
    </person>
  </persons>

我希望能够获取所有 personNumber = 2 的人的所有城市和位置!


您可以使用 linq 这样做:

var result = from p in xmlDoc.Descendants("person")
             from a in p.Descendants("address")
             where p.Element("personNumber").Value == "2" 
             select new 
                 { 
                   City = a.Element("city").Value, 
                   Location = a.Element("location").Value 
                 };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LINQ to XML 提取嵌套元素 的相关文章

  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使
  • 取消任务

    我尝试运行一个关于取消任务的简单示例 如下所示 CancellationTokenSource tokenSource2 new CancellationTokenSource CancellationToken token2 tokenS
  • 如何在 C# 中计算 power-of?

    我不太擅长数学 而且 C 似乎没有提供幂函数 所以我想知道是否有人知道我将如何进行这样的计算 var dimensions 100 100 100 00 3 00 See Math Pow http msdn microsoft com e
  • ostream cout 和 char *

    我有一系列像这样的字符 char arr 3 hi cout lt lt arr this will print out hi 运算符 cout lt
  • 如何终止会话或会话 ID (ASP.NET/C#)

    当用户单击注销按钮时 如何销毁会话 会话 名称 我正在 MSDN 上查看 ASP NET API Reference 它似乎没有太多信息 看来还是比较有限的 但我找不到 ASP NET 类等的任何其他页面 我努力了 Session Aban
  • 将 PDF 嵌入到 WPF 应用程序中

    我正在尝试在 WPF 应用程序中嵌入 显示 PDF 到目前为止 我已经尝试过这些解决方案 但没有成功 在 a 中显示 PDFWindowsFormsHost主持一个AxAcroPdf控制 类似于显示的内容here http hugeonio
  • 如何禁用vim的switch case缩进?

    我目前正在与 Vim 作斗争 我似乎无法让缩进选项达到我想要的效果 这是我的设置 我将它们放在 vimrc 的底部以确保它们优先 正如你所看到的 我有点疯狂 所以我尝试关闭几乎所有的东西 set cindent set cinkeys o
  • 使物体跟随旋转且差异很小

    我正在使我的对象跟随另一个对象的旋转 我希望我的对象以很小的差异旋转 也就是说 从当前的旋转来看 它不应该与另一个对象完全旋转 其旋转应该存在差异 使其旋转主要对象旋转的 10 我该怎么做呢 using System Collections
  • 抛出并保留堆栈跟踪不符合代码分析所描述的预期

    进行代码分析给了我项目 CA2200 CA2200 重新抛出以保留堆栈详细信息 func 重新抛出捕获的异常并将其显式指定为参数 请改用不带参数的 throw 以保留最初引发异常的堆栈位置 我已经实现了该建议 但无论如何我似乎都得到了相同的
  • 使用 C# 反序列化 JSON 以返回项目

    我有以下内容 documents keyPhrases search results Azure Search fast search indexing sophisticated search capabilities Build gre
  • 使用什么 API 在现有 MFC 应用程序中添加 HTTP 客户端支持?

    我最近接到一项任务 要添加与以下内容交互的能力网络地图服务 http en wikipedia org wiki Web Map Service到现有的 MFC 应用程序 我需要客户端 HTTP API 根据我的研究 领先的候选人似乎是CA
  • 如何将大文件 (>1 GB) 的编码转换为 Windows 1252,而不出现内存不足异常?

    考虑 public static void ConvertFileToUnicode1252 string filePath Encoding srcEncoding try StreamReader fileStream new Stre
  • OpenCV:将垫子除以标量的最简单方法是什么

    我认为标题中已经包含了很多内容 显然我可以迭代和划分 但我认为有一种内置的方法 我看见cvConvertScale但这不适用于类型cv Mat 我知道标量乘法的缩放运算 cv Mat M float alpha cv Mat Result
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使属性在 POST 请求上必需,但在 PUT 请求上不需要

    假设我有一个用户模型Email and Password用于身份验证目的的属性 如下所示 public class User public long Id get set Required public string FirstName g

随机推荐

  • 将 charset="utf-8" 添加到 HTML 链接元素有什么效果吗?

    我正在处理一个并非由我创作的 HTML 文档 它包含以下内容 以这种方式指定字符集有什么影响 还是字符集是由 Content Type 响应头确定的 The W3C says http www w3 org International qu
  • react-native-firebase crashlytics 未显示在 firebase 仪表板上

    我正在使用 firebase crashlytics 我这样做导致了崩溃 firebase crashlytics crash and I am not seeing the crash report on the firebase das
  • matlab图中的数据提示定制

    我有一个包含多个图的图表 每个图都来自不同的源文件 我希望数据提示告诉我 X Y 加上源文件的名称 长期以来 我最好的尝试 没有成功 是这样的 dcm datacursormode gcf datacursormode on set dcm
  • 画布下方的白色空白区域

    花了几个小时摆弄代码后 我遇到了一个问题 我创建了一个灰色的 HTML 画布 它将填满整个屏幕 并且它起作用了 但是 即使画布应该是屏幕上唯一可见的对象 当我向下滚动时 页面底部似乎仍然有一个小的白色空白区域 我已经知道这与身体无关 因为我
  • 在框架内打开 https 页面是否存在问题

    我以编程方式创建一个 html 报告 分为两个框架 如果用户随后单击右侧框架上的超链接 则该框架将被页面内容替换 这工作正常 但现在当我尝试链接到任何 Discogs 发布页面时 例如this one https www discogs c
  • 帮助解决密码复杂性正则表达式

    我使用以下正则表达式来验证密码复杂性 6 12 0 9 2 A Z 2 a z 2 简而言之 2个小写字母 2个大写字母 2个数字 最小长度为6 最大长度为12 当我使用最小长度时 除了最大长度之外 它工作得很好 例如 6 0 9 2 A
  • oracle sql 日期不晚于今天

    我需要显示一些数据 如果它是 新数据 更新数据 比方说 我将从发布日期列和更新列中获取这些数据 其中发布日期和更新日期都是时间戳 那么如果是新的日期如何计算呢 过去 24 小时 Where publish date gt sysdate 1
  • Python 中的 Yaml 合并

    所以我正在考虑用 Python 为 Pygame 制作一个小样板库 当然还有任何愿意使用它的人 我想要一个通过 yaml 文件提供应用程序设置的系统 因此 我认为如果库提供默认的 yaml 树并将其与用户提供的树合并 将会很有用 为了可用性
  • 如何同时运行 Windows Phone 7 模拟器的多个实例?

    我正在为 Windows Phone 7 创建多人游戏 如何运行模拟器的多个实例来调试它 您确实可以同时运行 Windows Phone 7 模拟器的多个实例 甚至可以同时调试它们 如我在我的文章中所示博客文章 http blog func
  • shell脚本中的cd命令是否加载目标目录中的rvmrc?

    当你有类似 在projectx内部给出一个 rvmrc文件 指定ruby 1 9 2并且我的系统上有两个ruby ree 1 8 7和ruby1 9 2 bin bash cd applications projectx which rub
  • flex-flow:列换行,在弹性框中导致父容器溢出

    我有这样的场景 https jsfiddle net b6zcdgf7 https jsfiddle net b6zcdgf7 container display flex height 3em border solid thin blue
  • H2数据库用户定义的java函数类未找到

    当我创建一个 ALIAS 来在 H2 数据库中注册 java 函数时 它给出了未找到类的错误 我正在 TCP 连接上运行 h2 数据库 sample public class TimeFrame public static void mai
  • 如何从 Java 将焦点集中到 shell 打开文件的默认程序?

    在 Java 中 我使用默认文件处理程序 MS Excel 在本例中 打开一个 Excel 文件 使用中描述的方法这个计算器问题 https stackoverflow com questions 2114318 opening an ex
  • 在 C# 中,如何捕获 Web 服务调用中使用的 SOAP?

    我有一个 C 应用程序 它是 Web 服务的客户端 我的要求之一是允许捕获我发送的 SOAP 这样如果出现问题 我可以修复错误 或者证明问题出在我正在调用的服务中 我的 WebReference 代理服务类派生自System Web Ser
  • NodeJS - MongoDB 触发器

    我正在尝试使用 DerbyJS Racer 和 MongoDB 开发日志查看器 日志将由不同的源连续插入到 MongoDB 数据库中 我的日志查看器应该能够自动更新用户界面上的日志表 我想知道是否有一种本地方式来监听 MongoDB 事件
  • libgdx 中的抗锯齿填充形状

    我一直在到处寻找一种方法来消除用绘制的填充形状的边缘锯齿ShapeRenderer ie ShapeType Filled 但找不到任何关于此的信息 线条效果很好Gdx gl glEnable GL10 GL LINE SMOOTH 但我尝
  • Python 的 pbkdf2_sha256.verify 的 NodeJS 实现

    我必须将此 Python 代码翻译为 NodeJS from passlib hash import pbkdf2 sha256 pbkdf2 sha256 verify 12345678 pbkdf2 sha256 2000 8R7jHO
  • Code::blocks 中的调试器命令行参数

    在 Code blocks 中调试程序时 如何指定要发送到正在调试的程序的命令行参数 我一生都找不到在哪里设置它 谷歌搜索会显示用于调试编译器本身的设置 而不是编译器中编写的程序 如果把它排除在外 那就太奇怪了 Thanks Tim 啊 正
  • VSCode Prettier 以奇怪的方式格式化 HTML(下一行大于符号)

    从今天起 安装了 Prettier Extension 的 VSCode 以一种非常奇怪的方式格式化我的 HTML 例如
  • LINQ to XML 提取嵌套元素

    我对 LINQ 和 XML 解析很陌生 对 C 编程也很陌生 对于以下 XML 结构 我尝试提取嵌套元素