将 XML 转换为 C# 对象

2024-01-11

我需要从这些 xml 数据中获取 OrderID:

<?xml version="1.0" encoding="utf-8"?>
<GetOrdersResponse xmlns="urn:ebay:apis:eBLBaseComponents">
  <Timestamp>2015-12-10T16:12:55.184Z</Timestamp>
  <Ack>Success</Ack>
  <Version>967</Version>
  <Build>e967_core_Bundled_5642307_R1</Build>
  <OrderArray>
    <Order>
      <OrderID>865826</OrderID>
      <OrderStatus>Active</OrderStatus>
   </Order>
  </OrderArray>
</GetOrdersResponse>

我已经尝试过这个但不起作用。

var xDoc = XDocument.Parse(xmlResult);
var orderElements = xDoc.Elements("GetOrdersResponse").Elements("OrderArray").Elements("Order");
foreach (XElement elem in orderElements)
{
    var orderId = Convert.ToInt32(_xmlHelper.GetChildElementValue(elem, "OrderID"));
}

请指教。


对于这样的问题,我总是选择使用 XmlSerializer。 使用这个类:

    using System;
    using System.Xml.Serialization;
    using System.Collections.Generic;
    namespace classes
    {
        [XmlType(Namespace = "urn:ebay:apis:eBLBaseComponents")]
   public class Order
    {
        public int OrderID { get; set; }
        public string OrderStatus { get; set; }
    }

    [XmlType(Namespace = "urn:ebay:apis:eBLBaseComponents")]
    public class OrderArray
    {
        public List<Order> Orders { get; set; }
    }

    [XmlRoot(Namespace = "urn:ebay:apis:eBLBaseComponents")]
    public class GetOrdersResponse
    {
        public string Timestamp { get; set; }
        public string Ack { get; set; }
        public string Version { get; set; }
        public string Build { get; set; }
        public OrderArray OrderArray { get; set; }
    }

    }

然后反序列化为您的对象:

XmlSerializer serializer = new XmlSerializer(typeof(GetOrdersResponse ));
using (TextReader reader = new StringReader(xmlResult))
{
    GetOrdersResponse result = (GetOrdersResponse) serializer.Deserialize(reader);
}

int id=result.OrderArray.Orders.First().OrderID; //this will return ID of first object in Orders list.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 XML 转换为 C# 对象 的相关文章

  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • 迭代变量并查找特定类型实例的技术

    我想迭代进程中内存中的变量 通过插件动态加载 并查找特定类型的实例 以前我可以找到特定类型 或内存中的所有类型 我可以创建类型的实例 我可以获取作为不同类型的字段包含的实例 但我无论如何都不知道只是 搜索 特定类型的实例 一种方法是使用 W
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • 如何使用recv()检测客户端是否仍然连接(并且没有挂起)?

    我写了一个多客户端服务器程序C on SuSE Linux 企业服务器 12 3 x86 64 我为每个客户端使用一个线程来接收数据 我的问题是 我使用一个终端来运行服务器 并使用其他几个终端来运行服务器telnet到我的服务器 作为客户端
  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • 暂停下载线程

    我正在用 C 编写一个非常简单的批量下载程序 该程序读取要下载的 URL 的 txt 文件 我已经设置了一个全局线程和委托来更新 GUI 按下 开始 按钮即可创建并启动该线程 我想要做的是有一个 暂停 按钮 使我能够暂停下载 直到点击 恢复
  • 如何从 C# 控制器重定向到外部 url

    我使用 C 控制器作为网络服务 在其中我想将用户重定向到外部网址 我该怎么做 Tried System Web HttpContext Current Response Redirect 但没有成功 使用控制器的重定向 http msdn
  • 如何识别 WPF 文本框中的 ValidationError 工具提示位置

    我添加了一个箭头来指示工具提示中的文本框 当文本框远离屏幕边缘时 这非常有效 但是当它靠近屏幕边缘时 工具提示位置发生变化 箭头显示在左侧 Here is the Image Correct as expected since TextBo
  • Qt 创建布局并动态添加小部件到布局

    我正在尝试在 MainWindow 类中动态创建布局 我有四个框架 它们是用网格布局对象放置的 每个框架都包含一个自定义的 ClockWidget 我希望 ClockWidget 对象在调整主窗口大小时相应地调整大小 因此我需要将它们添加到
  • Azure 事件中心 - 按顺序接收事件

    我使用下面的代码从 Azure Event Hub 接收事件 https learn microsoft com en us azure event hubs event hubs dotnet framework getstarted s
  • 生产代码中的 LRU 实现

    我有一些 C 代码 需要使用 LRU 技术实现缓存替换 目前我知道两种实现LRU缓存替换的方法 每次访问缓存数据时使用时间戳 最后比较替换时的时间戳 使用缓存项的堆栈 如果最近访问过它们 则将它们移动到顶部 因此最后底部将包含 LRU 候选
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • 将代码拆分为标头/源文件

    我从 Asio 的示例页面中获取了以下代码 class tcp connection public boost enable shared from this
  • 是否可以有一个 out ParameterExpression?

    我想定义一个 Lambda 表达式out范围 有可能做到吗 下面是我尝试过的 C Net 4 0 控制台应用程序的代码片段 正如您在 procedure25 中看到的 我可以使用 lambda 表达式来定义具有输出参数的委托 但是 当我想使
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • 转到定义:“无法导航到插入符号下的符号。”

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我今天突然开始在我的项目中遇到一个问题 单击 转到定义 会出现一个奇怪的错误 无法导航到
  • 我在在线程序挑战编译器中遇到演示错误

    include
  • WinRT 定时注销

    我正在开发一个 WinRT 应用程序 要求之一是应用程序应具有 定时注销 功能 这意味着在任何屏幕上 如果应用程序空闲了 10 分钟 应用程序应该注销并导航回主屏幕 显然 执行此操作的强力方法是在每个页面的每个网格上连接指针按下事件 并在触

随机推荐

  • 用千分尺查询数据

    我们有这个奇特的监控系统 我们的 spring boot 服务通过千分尺将指标发布到流入数据库 有一个不错的 grafana 前端 但问题是我们现在处于这样一个阶段 我们必须在其他服务中提供其中一些指标来进行推理 整个体系是我的前任建立的
  • Android 中将值从一个 Activity 传递到另一个 Activity

    您好 我开发了一个应用程序 它有一个文本框和一个搜索按钮 当我在文本框中输入数字并单击搜索按钮时 它需要将输入的值传递到下一个活动 在下一个活动中使用该值来获取值来自数据库 我正在使用以下代码来传递值 search button setCl
  • 字段“$name”必须是累加器对象

    我有一个疑问 当我使用 group https docs mongodb com manual reference operator aggregation group 错误显示 字段 name 必须是累加器对象 如果删除提交的 name
  • RESTful 服务:WCF 与 ASP.NET MVC

    实现 RESTful 服务的一种非常常见的方法是利用 ASP NET MVC 通过 WCF 来实现 ASP NET MVC 通过灵活的 URL 路由和灵活的 HTTP 方法映射到控制器操作 具有出色的 RESTful 支持 WCF 4 0
  • 如何将 Pigz 与 Tar 一起使用

    所以我在 tar 中使用 Pigz tar use compress program pigz 这可行 但它没有使用我的所有处理器 我想确保它是递归的 r 并使用 9 压缩级别 我通读了利用多核进行tar gzip bzip压缩 解压 ht
  • 使用 git 进行贡献

    所以我在github上克隆了一个项目并修复了补丁 因为这是我第一次使用 git 工作 所以我试图找出将其放到网上的最佳方法 在 github 上查看我自己的 克隆的 存储库后 发现只有一个分支 master 我创建了一个分支 myfix 现
  • 如何使用 Bash 伪造 DHCP 发现数据包?

    我想通过网络 LAN 发送经典DHCP 发现使用命令行打包 以便触发来自任何DHCP服务器监听 所以我可以用类似的东西捕获它 假设我的IP地址是192 168 0 30 tcpdump i eth0 host 192 168 0 30 n
  • 在 `aws cloudformation deploy --parameter-overrides` 中,如何将多个值传递给 `List` 参数?

    我在用这个 CloudFormation 模板 https docs aws amazon com AWSCloudFormation latest UserGuide example templates autoscaling html
  • 类型“未定义”不可分配给类型“从不”

    interface A name string age number var a A name age 23 var result A Object keys a as Array
  • 总结 sf::st_intersection() 中几何图形重叠的属性

    我想总结一组几何图形的属性 对它们重叠的值进行求和 library devtools install github r spatial sf library sf m rbind c 0 0 c 1 0 c 1 1 c 0 1 c 0 0
  • 如何查看Tortoise HG发出的Mercurial命令?

    我有办法查看 Tortoise HG 发出了哪些 Mercurial 命令吗 例如 如果我在 Tortoise 中使用 Shelve 命令 我想看看它如何 以及是否 在幕后调用 hg shelve 在某些工具中 有一个 查看 gt 始终显示
  • GCP 实例可以使用单个网络接口的最大带宽是多少?

    我正在使用 n 个并行进程将数据上传到 Google 云存储桶 出口数据速率约为 16Gbps 仅使用 n 个进程并行从 gcp 存储桶下载数据时 入口流量约为 26Gbps 但是当我使用相同的编号同时执行上传和下载时 的进程 入口速率降低
  • Java 方法引用具有泛型参数的方法

    我正在尝试对具有在类声明中指定的通用参数的方法进行方法引用 所以我有 public interface IExecutable p void execute P parameter public class Parameter implem
  • Android - 在运行时更改片段布局

    我想在我的应用程序中实现单活动多片段设计 我计划有几个 屏幕 片段的布局 我将在代码中切换 可能添加到后台堆栈 据我了解 每个屏幕中片段的布局是使用布局对象 例如 FrameLayout 设置的 该对象充当片段的占位符 共享相同的 ID 由
  • Spring 拦截 url 模式

    Spring Security 拦截 url 模式与 path 或 path 有什么区别 我见过一些具有以下内容的 Spring 安全配置 但我不明白 与 The vs 现在框架中很常见 通常称为Apache Ant Pathing或类似的
  • 指针、引用和常量引用参数的函数调用歧义

    我想做的是 允许使用 setter 函数传递指针 引用或常量引用 class A std string p std string st public A p 0 A setS const std string s std cout lt l
  • 新版本的java可以在旧版本上运行吗? [复制]

    这个问题在这里已经有答案了 我有一个疑问 java是向后兼容还是向前兼容 另外 我们可以在具有 JDK 8 的 MAC 上运行用 JDK 11 Windows 编写的 java 字节码吗 我试图理解平台独立性的概念 简短回答 是的 这才是重
  • 是否可以在运行时获取依赖版本,包括从库本身获取依赖版本?

    背景 假设我制作了一个名为 MySdk 的 Android 库 并将其发布到 Jitpack Maven 上 SDK 的用户只需添加以下依赖项即可使用它 implementation com github my sdk MySdk 1 0
  • 使用位移位求整数平方根的最快方法是什么?

    我一直在寻找最快的方法来计算数字 整数 的平方根 整数 我在维基百科中遇到了这个解决方案 它找到一个数字的平方根 如果它是一个完美的平方 或其最接近的下完美平方的平方根 如果给定的数字不是一个完美的平方 short isqrt short
  • 将 XML 转换为 C# 对象

    我需要从这些 xml 数据中获取 OrderID