使用 C# 解析复杂的 XML

2023-12-04

我正在尝试使用 C# 解析复杂的 XML,我正在使用 Linq 来完成它。基本上,我正在向服务器发出请求并获取 XML,这是代码:

XElement xdoc = XElement.Parse(e.Result);
this.newsList.ItemsSource = 
  from item in xdoc.Descendants("item")
  select new ArticlesItem
  {
    //Image = item.Element("image").Element("url").Value,
    Title = item.Element("title").Value,
    Description = this.Strip(item.Element("description").Value).Substring(0, 200).ToString()
  }

这是 XML 结构:

<item>
  <test:link_id>1282570</test:link_id>
  <test:user>SLAYERTANIC</test:user>
  <title>aaa</title>
  <description>aaa</description>
</item>

例如,我如何访问属性 test:link_id ?

Thanks!


目前您的 XML 无效,因为test命名空间未声明,您可以这样声明:

<item xmlns:test="http://foo.bar">
  <test:link_id>1282570</test:link_id>
  <test:user>SLAYERTANIC</test:user>
  <title>aaa</title>
  <description>aaa</description>
</item>

有了这个你就可以使用XNamespace使用正确的命名空间限定所需的 XML 元素:

XElement xdoc = XElement.Parse(e.Result);
XNamespace test = "http://foo.bar";
this.newsList.ItemsSource = from item in xdoc.Descendants("item")
                            select new ArticlesItem
                            {
                                LinkID = item.Element(test + "link_id").Value,
                                Title = item.Element("title").Value,
                                Description = this.Strip(item.Element("description").Value).Substring(0, 200).ToString()
                            }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 C# 解析复杂的 XML 的相关文章

  • std::cout 和 std::wcout 有什么区别?

    在c 中 有什么区别std cout and std wcout 它们都控制流缓冲区的输出或将内容打印到控制台 或者它们只是相似吗 它们作用于不同的字符类型 std cout uses char作为字符类型 std wcout uses w
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • 如何从main方法调用业务对象类?

    我已将代码分为业务对象 访问层 如下所示 void Main Business object public class ExpenseBO public void MakeExpense ExpensePayload payload var
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • 线程和 fork()。我该如何处理呢? [复制]

    这个问题在这里已经有答案了 可能的重复 多线程程序中的fork https stackoverflow com questions 1235516 fork in multi threaded program 如果我有一个使用 fork 的
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • 如果我重新安装应用程序,我的应用程序的辅助功能服务将无法正常工作

    如果在卸载应用程序之前我没有取消选中 设置 gt 辅助功能 下的辅助功能服务选项 则辅助功能服务不会与我的应用程序绑定 笔记 为了让它再次工作 我需要重新启动我的手机 任何人都可以建议我如何在不禁用辅助功能服务的情况下安全地重新安装我的应用
  • 如何与java中的字符串日期格式进行比较?

    我收到两种类型的输入 1 String date1 07 01 2017 2 String date2 2017 01 12 00 00 00 0 如何比较两种日期格式 如果我得到的格式为 date1 我想执行一项功能 如果我得到 date
  • 应用程序加载器报告缺少代码签名证书

    I am developing my App in xamarin studio I want the solution for xamarin Ios app not on xcode I produce screenshots abou
  • 有没有办法在 Hive CREATE TABLE 语句本身中指定传入数据的日期/时间戳格式?

    我有一个 CSV 文件 其中包含以下格式的日期和时间戳值 例如 Col1 col2 01JAN2019 01JAN2019 17 34 41 但是 当我在 create 语句中将 Col1 定义为 Date 将 Col2 定义为 Times
  • SCHED_OTHER/SCHED_FIFO 的 pthread sched_get_priority_min/max 实现

    我正在尝试为我正在从事的项目编写一个半可移植线程类 在尝试设置线程的优先级时 我遇到了 pthread 世界中的一个难题 给出以下代码 include
  • AEM 6.1 使用的 Ext JS 版本

    AEM 6 1 使用哪个版本的 Ext JS 库 有没有直接的方法 控制台可以找到这个问题 It uses v3 4 0ExtJS 的基础上构建了 AEM Widget 库 您可以在以下位置找到详细信息 libs cq ui widgets
  • 如何将绘制的线保留在补丁下方

    在下面的代码中 我绘制了一条线 然后在其上方绘制了一个不透明补丁 alpha 1 我希望被补丁覆盖的线部分被隐藏 但看起来好像线是在补丁之后绘制的 如何更改 使线条不显示出来 该代码改编自这个 matplotlib 示例 import ma
  • Android:将视图投射到视图

    我有一个扩展视图的类 MyView 扩展视图 在活动中我有下一个 View view View findViewById R id relative layout view here I have error because of cast
  • 如何检查R中函数的所有参数

    通常在 R 参数列表中包的 html 帮助中 以结尾 其他论点通过 但是我们如何在 R 中打印函数的所有参数 如果我正确理解你的问题 那么我倾向于说 大多数时候 不可能列出所有可能通过的参数 函数的 部分 请看一下非常简单的 plot功能
  • 如何获取 std::string 的准确长度?

    我正在修剪长条std string使用此代码将其放入文本容器中 std string AppDelegate getTrimmedStringWithRange std string text int range if text lengt
  • 这个Python装饰器是如何工作的?

    编辑 澄清以使我的问题具体到我的查询 我可以看到装饰器静态日志函数是如何调用的 但我不知道如何调用 被调用以及它的结果如何是log的结果 我看到了输入 输入内容是如何工作的 class logger staticmethod def log
  • 使用 python requests 模块在 Github 中创建经过身份验证的会话

    我的目标是在 github 中创建一个经过身份验证的会话 以便我可以使用高级搜索 这将功能限制为未经身份验证的用户 目前 我收到来自发布请求的网页响应 什么 您的浏览器执行了意外操作 如果问题仍然存在 请联系我们 这是我用来尝试完成我的任务
  • 随机数,分布不均匀[重复]

    这个问题在这里已经有答案了 可能的重复 生成密度不均匀的随机数 我尝试识别 创建一个函数 在 Java 中 它给我一个非均匀分布的数字序列 如果我有一个函数说function f x and x gt 0它会给我一个随机数 从0 to x
  • 如何确保从抽象泛型类派生的类使用自身作为泛型参数

    我有一个抽象类 public abstract class MyAbstractBase
  • 检查字符串的第一个字母是否为大写

    我想创建一个函数来检查字符串的第一个字母是否为大写 这是我到目前为止所想出的 def is lowercase word if word 0 in range string ascii lowercase return True else
  • Node.js、bluebird、执行路径控制不佳

    我正在努力学习蓝鸟 我没有按照自己的意愿控制执行 这个蓝鸟问题来自 async js 问题Node js 异步模块 并发 这是一些代码 加上我期望得到的和我得到的 问题 为什么 3 函数在 1 1 和 2 函数结束以及 2 第一个错误检查函
  • 更改日期格式

    我有一个 DateTime 变量 例如时间戳 它以通常的格式保存日期 如下所示 11 1 2011 该变量用于构建 SQL 命令 Oracle数据库只接受以下格式的日期 YYYY MM DD 如何操作我的变量以这种格式存储日期 根本不要格式
  • 底部导航视图中所选选项卡的颜色

    我正在添加一个BottomNavigationView到一个项目 我想为选定的选项卡使用不同的文本 和图标色调 颜色 以实现灰显未选定的选项卡效果 使用不同的颜色android state selected true 在颜色选择器资源文件中
  • data.table中按组填充缺失值

    如果想要根据一组内的前 后非 NA 观察来填充变量的缺失值 则 data table 命令是 setkey DT id date DT value filled in DT is na value list id date value DT
  • 使用 C# 解析复杂的 XML

    我正在尝试使用 C 解析复杂的 XML 我正在使用 Linq 来完成它 基本上 我正在向服务器发出请求并获取 XML 这是代码 XElement xdoc XElement Parse e Result this newsList Item