编写 xml 并读回 c#

2024-03-26

好的,我现在使用文档方法而不是 XmlWriter 来编写 XML。 我已经用 编写了我的 XML 文件。

userNode = xmlDoc.CreateElement("user");
attribute = xmlDoc.CreateAttribute("age");
attribute.Value = "39";
userNode.Attributes.Append(attribute);
userNode.InnerText = "Jane Doe";
rootNode.AppendChild(userNode);

但问题又是如何读回这些设置。

<users>
  <user name="John Doe" age="42" />
  <user name="Jane Doe" age="39" />
</users>

文件的格式我可以弄清楚如何读取age变量,但无法获取 name 属性。我的 XML 文件与上面略有不同,但差别不大


逐个元素编写 XML 文件可能非常耗时,而且容易出错。

我建议使用 XML Serializer 来完成此类工作。

如果您不关心格式 - 并且要求只是能够序列化为 XML 并稍后反序列化,则代码可以简单如下:

public class User
{
    public string Name { get; set; }
    public int Age { get; set; }
}

string filepath = @"c:\temp\users.xml";

var usersToStore = new List<User>
{
     new User { Name = "John Doe", Age = 42 },
     new User { Name = "Jane Doe", Age = 29 }
};

using (FileStream fs = new FileStream(filepath, FileMode.OpenOrCreate))
{
    XmlSerializer serializer = new XmlSerializer(usersToStore.GetType());
    serializer.Serialize(fs, usersToStore);
}

 var retrievedUsers = new List<User>();
 using (FileStream fs2 = new FileStream(filepath, FileMode.Open))
 {
     XmlSerializer serializer = new XmlSerializer(usersToStore.GetType());
     retrievedUsers = serializer.Deserialize(fs2) as List<User>;
 }

微软提供了一些很好的例子.Net 文档 - XML 序列化简介 https://learn.microsoft.com/en-us/dotnet/framework/serialization/introducing-xml-serialization

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

编写 xml 并读回 c# 的相关文章

  • 在 C# 中按元素相乘数组具有意想不到的性能

    我想找到按元素相乘两个数组的最佳方法 这是更广泛项目的一部分 其中性能而不是唯一的考虑因素 我今天开始用 C Linqpad 编写一些函数 因此它还没有以任何方式进行优化 下面代码的输出如下 Environment ProcessorCou
  • FileStream 构造函数和默认缓冲区大小

    我们有一个使用 NET 4 用 C 编写的日志记录类 我想添加一个构造函数参数 该参数可以选择设置文件选项 WriteThrough http msdn microsoft com en us library system io fileo
  • 使用 Enumerable.OfType() 或 LINQ 查找特定类型的所有子控件

    Existed MyControl1 Controls OfType
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • EF Core 通过完全替换断开集合导航属性的更新

    使用 EF Core 5 0 我有一个 SPA 页面 可以加载Group实体及其集合Employee来自 API 的实体 var groupToUpdate await context Groups Include g gt g Emplo
  • VS 程序在调试模式下崩溃,但在发布模式下不崩溃?

    我正在 VS 2012 中运行以下程序来尝试 Thrust 函数查找 include cuda runtime h include device launch parameters h include
  • 类特定的新删除运算符是否必须声明为静态

    标准中是否要求类特定的 new new delete 和 delete 是静态的 我可以让它们成为非静态成员运算符吗 为什么需要它们是静态的 它们被隐式声明为静态 即使您没有键入 static
  • 指向特征矩阵的指针数组

    我在代码中使用 Eigen 的 MatrixXd 矩阵 在某个时刻我需要一个 3D 矩阵 由于 Eigen 没有三维矩阵类型 因为它仅针对线性代数进行了优化 因此我创建了一个 MatrixXd 类型的指针数组 Eigen MatrixXd
  • GCC 和 ld 找不到导出的符号...但它们在那里

    我有一个 C 库和一个 C 应用程序 尝试使用从该库导出的函数和类 该库构建良好 应用程序可以编译 但无法链接 我得到的错误遵循以下形式 app source file cpp text 0x2fdb 对 lib namespace Get
  • fprintf() 线程安全吗?

    我正在为野人就餐问题的某些变量编写一个 C 解决方案 现在 我创建线程 每个线程都将 FILE 获取到同一个调试文件 在线程内我正在使用 fprintf 进行一些打印 打印的语句不受任何类型的互斥锁等保护 我没有在调试文件中观察到任何交错行
  • 从 WebBrowser 控件 C# 获取滚动值

    我试图在 WebBrowser 控件中获取网页的 Y 滚动索引 但无法访问内置滚动条的值 有任何想法吗 对于标准模式下的 IE 使用文档类型 正如你所说 scrollTop是的财产元素 而不是 HtmlDocument htmlDoc th
  • Visual Studio Code:如何配置 includePath 以获得更好的 IntelliSense 结果

    我是使用 Visual Studio Code 的完全初学者 我不知道我在做什么 我已经四处搜索 也许还不够 但我找不到像我这样的人如何配置的简单解释c cpp properties json每当我单击带有绿色波浪线下划线的行旁边的黄色灯泡
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • 将二进制数据从 C# 上传到 PHP

    我想将文件从 Windows C 应用程序上传到运行 PHP 的 Web 服务器 我知道 WebClient UploadFile 方法 但我希望能够分块上传文件 以便我可以监控进度并能够暂停 恢复 因此 我正在读取文件的一部分并使用 We
  • 如何通过 JsonConvert.DeserializeObject 在动态 JSON 中使用 null 条件运算符

    我正在使用 Newtonsoft 反序列化已知的 JSON 对象并从中检索一些值 如果存在 关键在于对象结构可能会不断变化 因此我使用动态来遍历结构并检索值 由于对象结构不断变化 我使用 null 条件运算符来遍历 JSON 代码看起来像这
  • 如何在c的case语句中使用省略号?

    CASE expr no commas ELLIPSIS expr no commas 我在c的语法规则中看到了这样的规则 但是当我尝试重现它时 int test float i switch i case 1 3 printf hi 它失
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F
  • 在线性布局内的 ScrollView 内并排对齐 TextView

    我有一个带有滚动视图的线性布局 我想保留它的当前格式 但只需将 textView2a 和 textView3a 并排放置 而不会破坏我当前的布局格式 我已经包含了我最近的尝试 但它们似乎不正确 提前致谢 Java菜鸟 当前有效的 XML
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959

随机推荐

  • 故事板的多个入口点

    我需要在启动时在 AppDelegate 中做出一系列决定 根据这些决定的结果 我需要转到故事板的特定部分 所以我的问题是 在不使用任何导航或选项卡控制器的情况下 我如何转到故事板的特定部分 OR 唯一受支持的选项是否具有多个故事板 对于每
  • 如何根据搜索到的字符串过滤列表框中的项目

    我有一个 Windows 窗体应用程序 C 其中包含一个列表框 我在其中添加了一些项目 我没有使用数据源 我想过滤 ListBox 中的项目以仅显示包含我正在搜索的字符串的项目 我通过保留原始项目的列表并在每次搜索字符串更改时从该列表中选择
  • 使用 URL::action() 时如何更改域

    我正在尝试复制 Laravel 3 中可用的内容 我希望能够为路由指定备用域名 例如 我有一条使用此代码生成以下内容的路线 URL action DashboardController something Produces http som
  • 无法转换“AppDelegate Proxy”类型的值

    我已经集成了 Localtyics iOS SDK 之后我收到如下错误 无法转换 LLAppDelegateProxy 类型的值 这意味着我无法获取应用程序委托对象的引用 我现在遇到麻烦了 因为我想要 Localytics 并且还想要 Ap
  • 批处理脚本在文件夹中查找空文件

    我需要识别文件夹中的零 KB 文件并将输出写入文本文件 下面是我使用批处理脚本找到的代码 我想根据我的以下要求进行自定义 echo off set out found txt for r c myfolderfilestosearch F
  • CS0234:System.Web 命名空间中不存在 Mvc

    我根据 Scott Hanselmen Phil Haack 和 Rob Conery 出版的 Professional ASP NET 3 5 MVC 第 13 章 将 ASP net 4 webform 项目转换为 Asp net MV
  • Angular JS:ng-click 范围集在 ng-if 中不起作用

    今天 我看到了 angularjs 中的一个错误 当您尝试直接在 ng click 中设置范围值时 当您的 ng click 位于测试相同范围值的 ng if 中时 它不起作用 gt http jsfiddle net 9j2TL 26 h
  • Android Management API - 使用密码退出 kiosk 模式

    我有问题 我有完全托管的设备并使用 Android Management API https developers google com android management https developers google com andr
  • Jquery 对象选择器作为字符串

    有没有办法获取 jquery 对象的选择器 例如 在 Firefox 中 我看到一个 jquery 对象为 p basket 但 jquery 中似乎没有办法获得这个选择器 有什么办法吗 Phil 如果 jQuery 对象是使用选择器字符串
  • 在 IL 中对空引用调用实例方法

    在 IL 中可以对空引用调用实例方法是否正确 有没有例子可以证明这一点 是的 这是可能的 只要该方法不使用this因为 CLR 不会对以下内容进行空检查call指示 You would have to modify the IL by ha
  • 如何检查我的应用程序是否在 android 中运行(不是作为服务)?

    Problem 我必须检查我的应用程序是否正在运行 当服务已经在后台运行时 基于它 我应该启动特定的活动或应用程序 我尝试或想出但失败的事情我尝试检查当前正在运行的进程 并根据它尝试确定应用程序是否正在运行 失败原因 获取应用程序运行状态一
  • 如何使用 CGImageRef 图像在 NSView 中显示图像

    我想在 NSview 或 NSImageView 中显示图像 在我的头文件中我有 interface FVView NSView NSImageView imageView end 这是我在实现文件中尝试做的事情 void drawRect
  • 将日期时间转换为时间戳并再次转换回来

    我在 Python 中的日期时间方面遇到了一些问题 我尝试将日期时间转换为时间戳 然后再转换回来 无论我如何尝试 最终结果都不一样 我总是以 datetime 2014 1 30 23 59 40 1998 的日期时间结束 import d
  • 使用 REST 是否必须使用适当的方法类型(POST、PUT、GET、DELETE)?

    我们在项目中使用 REST 调用 Web 服务来处理从用户界面进行的所有调用 目前 对于每个方法 签名都是以这种方式配置的 public class SaveNewAddressLabelService GET Consumes appli
  • XSLT 删除任意重复的同级元素

    答案here https stackoverflow com a 16715399 288341正在做我想要的事情 除了我不想只删除特定元素的重复同级元素 我想删除所有元素的重复同级元素 此外 出于我的目的 重复 元素将具有与其同级元素相同
  • Array.map 的 Javascript 性能

    刚刚在 jsperf 中编写了一些测试用例来测试使用时命名函数和匿名函数之间的区别Array map和其他替代方案 http jsperf com map reduce named functions http jsperf com map
  • Flask_migrate 可以在数据库初始化文件中与 sqlAlchemy create_engine 一起运行吗?

    如果我有一个init py 文件如下所示 from sqlalchemy import create engine import os from sqlalchemy orm import sessionmaker scoped sessi
  • CSS3 Internet Explorer 缩放背景过滤器:

    我正在尝试拉伸背景图像 使其始终填充窗口 使用 CSS3 我已经在 mozilla 和 chrome 中管理它 但是在 IE 中却遇到了困难 我以前在 IE 中管理过这个 但这次不起作用 这是我的 HTML 和 CSS HTML5
  • 如何从序列中提取升序子集?

    我有一些数据 id serial 1 1 2 2 3 3 4 1 5 3 6 2 7 1 8 2 9 3 10 1 11 2 12 1 13 2 14 3 我想按 串行 列进行分组 其中组规则是 任何升序子集 像这样 1 gt 2 gt 3
  • 编写 xml 并读回 c#

    好的 我现在使用文档方法而不是 XmlWriter 来编写 XML 我已经用 编写了我的 XML 文件 userNode xmlDoc CreateElement user attribute xmlDoc CreateAttribute