从 XML 反序列化为列表对象

2023-11-30

我正在执行将 XML 文件转换为列表对象的程序。我已成功完成从 List 到 XML 的序列化。但是在进行反序列化时遇到问题。请任何人告诉我我在这段代码中做错了什么。

这是我的 XML 代码。

<?xml version="1.0"?>
<Contact_x0020_Form xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Contact>
    <Contact>
      <Id>1</Id>
      <Name>vicky1kumar</Name>
      <Phone>248847227</Phone>
    </Contact>
    <Contact>
      <Id>2</Id>
      <Name>vicky1kumar2kumar</Name>
      <Phone>725228355</Phone>
    </Contact>
    <Contact>
      <Id>3</Id>
      <Name>vicky1kumar2kumar3kumar</Name>
      <Phone>2032848116</Phone>
    </Contact>
    <Contact>
      <Id>4</Id>
      <Name>vicky1kumar2kumar3kumar4kumar</Name>
      <Phone>853938969</Phone>
    </Contact>
    <Contact>
      <Id>5</Id>
      <Name>vicky1kumar2kumar3kumar4kumar5kumar</Name>
      <Phone>530646891</Phone>
    </Contact>
  </Contact>
  <Id>0</Id>
</Contact_x0020_Form>

这是我的用于将 XML 转换为列表对象的类

public class Converter
{
    public static T XmlToObject<T>(string xml)
    {
        using (var xmlStream = new StringReader(xml))
        {
            var serializer = new XmlSerializer(typeof(T));
            return (T)serializer.Deserialize(XmlReader.Create(xmlStream));
        }
    }

    public static List<T> XmlToObjectList<T>(string xml, string nodePath)
    {
        var xmlDocument = new XmlDocument();
        xmlDocument.LoadXml(xml);

        var returnItemsList = new List<T>();

        foreach (XmlNode xmlNode in xmlDocument.SelectNodes(nodePath))
        {
            returnItemsList.Add(XmlToObject<T>(xmlNode.OuterXml));
        }
        return returnItemsList;
    }
}  

这是我的反序列化代码......

List<string> decont = new List<string>();
decont  = Converter.XmlToObjectList<string>(@"C:\vignesh\serialization\xmlserialize\XmlSerializeContact.xml","//Contact");
                    foreach (var item in decont)
                    {
                        Console.WriteLine(decont);
                    }  

我收到这个错误:

根级别的数据无效。第 1 行,位置 1。


根级别的数据无效。第 1 行,位置 1。

要解决第一个错误,您必须了解原因。问题是LoadXml接受 xml 字符串;而您正在传递 Xml 文件的路径。你需要使用Load代替LoadXml.

也就是说,还有很多其他事情需要纠正。这连载的您的问题中提供的 XML 似乎不正确——例如这Contact节点是它自己的父节点。因此,您的节点选择将为您提供整个 Xml。 (你的意思是定义Contacts节点作为其父节点Contact list?)

<Contacts>
.. <Contact>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 XML 反序列化为列表对象 的相关文章

  • 如何获取正在访问 ASP.NET 应用程序的当前用户?

    为了获取系统中当前登录的用户 我使用以下代码 string opl System Security Principal WindowsIdentity GetCurrent Name ToString 我正在开发一个 ASP NET 应用程
  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • com.ibm.mq.MQException:MQJE001:完成代码“2”,原因“2035”

    我正在构建一个应该能够连接到 IBM WebSphere MQ 队列管理器的 Java 应用程序 但我不明白为什么我不断收到此错误 我已经使用我的用户 ID 拥有管理权限setmqaut通过 MQ 资源管理器 我还定义了MCAUSER在我的
  • 在for循环中读取csv文件并分配数据框名称[重复]

    这个问题在这里已经有答案了 可能的重复 将多个 CSV 文件读取到单独的数据框中 我需要将多个 csv 文件从一个文件夹读入数据帧 csv 文件名的格式为fxpair yyyy mm csv 例如 AUDJPY 2009 05 csv 我想
  • 单例对于微博网站来说是一个好的设计模式吗?

    我过去在项目中没有使用过任何 OO 因为我让它更简单 实际上使用古老的 mysql query 调用和我自己的过滤 所以我想开始一个新项目 学习在我的 OO 中使用设计模式 我想建立一个微博网站来娱乐一下 然后发现单例设计模式类看起来很完整
  • 未显示 Azure Web App/虚拟目录上的节点应用程序

    我已经找到一篇文章 但没有与当前 Azure Web App 配置选项匹配的文章 我想新版本中有些东西发生了变化 我正在尝试通过 Azure Web App 和 Linux 应用服务计划托管节点应用程序 我的问题是 我的节点应用程序的内容没
  • Google Maps API,所有标记打开相同的信息窗口

    我有一个页面 可以检索一堆位置和一些有关其关联标记的数据 并将它们放在 Google 地图上 单击时 每个按钮都会弹出自己的小消息 但是 单击其中任何一个都会在最近添加的标记处弹出最近添加的消息 是什么赋予了 我没有正确编写点击事件脚本吗
  • 可可 NSView 模糊背景

    我知道可以在 Cocoa 中创建透明窗口 尽管可以模糊其后面的内容吗 我知道有过类似的问题 但它们处理的内容更加模糊实际 NSView 中的内容 而不是其背后的内容 这是否可能 如果可以 我需要研究什么方法 Possible Impossi
  • Math ML 的 .NET 组件,可以编辑公式,将其呈现为图像

    目前最受欢迎的组件 MathML Net 无法下载 我想知道是否有其他 Net 组件可以帮助解决此问题 可以编辑公式 将其渲染为图像 I found g分子 就在不久前 它应该呈现 MathML 并且它是用 C 为 Winforms 编写的
  • 使用 R 3.6.0 编译 stan 文件时出错。和赢10

    Error in compileCode f code language language verbose verbose Compilation ERROR function s method s not created Error in
  • 将组件放置在玻璃板上

    我有一个 JLabel 的子类 它构成了我的 GUI 的一个组件 我已经实现了将组件从一个容器拖放到另一个容器的功能 但没有任何视觉效果 我想让这个 JLabel 在将项目从一个容器拖动到另一个容器时跟随光标 我想我可以创建一个玻璃板并在上
  • 禁用iOS弹性体滚动并保持本机滚动工作[重复]

    这个问题在这里已经有答案了 我目前正在开发一个针对触摸设备 主要是 iOS 进行优化的单页 Web 应用程序 我已经通过以下方式实现了新的 iOS 原生滚动 webkit overflow scrolling touch 一切运行良好 除了
  • Powershell 数组扁平化是如何工作的?

    请注意 C gt x 1 C gt x x 2 C gt x x 3 C gt x x 4 C gt x x 5 C gt x Length 2 C gt x Length 3 C gt x Length 2 LongLength 2 Ra
  • 如何在c#中导出注册表

    我一直在尝试将注册表文件导出并保存到任意位置 代码正在运行 但是 在指定路径并保存时 该功能不起作用 并且不会导出任何注册表 也没有显示错误 private static void Export string exportPath stri
  • git 子模块检查相同的提交

    After I git submodule update它总是检查相同的提交 例如34561 I do git checkout master对于子模块 然后git submodule sync 然后它指向最新的提交a2344 但是之后up
  • 在哪里可以查看 TensorFlow 梯度下降主循环?

    抱歉 如果这听起来有点天真 我想看看里面的肉TensorFlowGradientDescent 的实现 亲自看看它们如何处理终止条件 步长自适应性等 我追踪了代码training ops apply gradient descent但我找不
  • 不可变对象的名称如何重新绑定到增强赋值的结果?

    不可变对象的名称如何重新绑定到增强赋值的结果 对于可变对象 例如 如果x 1 2 3 并且 y 4 5 那么当我们执行 x y 时 它的执行方式为x iadd y 它修改了x in place并做了名字x再次重新绑定到它 它是如何工作的x是
  • 比“尝试”和“例外”更快的方法? - Python

    我经常将代码写成如下 try self title item title content string except AttributeError e self title None 有没有更快的方法来处理这个问题 一行 您遇到了哪些例外情
  • 在jspdf中添加自定义字体

    我想在 jsPDF 中使用自定义字体 例如 Comic Sans MS 或 Calibri 字体 我发现了类似的问题here 但我的不工作 我已经添加了最新的jspdf 我的代码如下 var doc new jsPDF p mm a4 do
  • swt表改变选择项颜色

    我正在使用一个标准的 swt 表 您可能知道 默认情况下 选择一个项目时颜色为蓝色 Windows 标准 当选择处于非活动状态时 它会变成浅灰色 我想覆盖这两种颜色 我在整个网络上进行了搜索 但只能找到一些非常旧的代码 这些代码似乎不再适用
  • PrototypeJS:如何选择动态创建的元素?

    该网站使用 Prototype JS 库 页面加载后 它立即执行 Ajax 请求 该请求会拉出并显示页面的更多元素 我需要能够选择那些动态创建的元素并将它们隐藏 hide method 我尝试使用选择并隐藏它们document observ
  • 从 XML 反序列化为列表对象

    我正在执行将 XML 文件转换为列表对象的程序 我已成功完成从 List 到 XML 的序列化 但是在进行反序列化时遇到问题 请任何人告诉我我在这段代码中做错了什么 这是我的 XML 代码