在 C# 中将 XML 字符串解析为类? [复制]
Posted
技术标签:
【中文标题】在 C# 中将 XML 字符串解析为类? [复制]【英文标题】:Parse XML string to class in C#? [duplicate] 【发布时间】:2012-07-03 06:49:37 【问题描述】:可能重复:How to Deserialize XML document
假设我有一个在 C# 中这样定义的类:
public class Book
public string Title get; set;
public string Subject get; set;
public string Author get; set;
假设我有如下所示的 XML:
<Book>
<Title>The Lorax</Title>
<Subject>Children's Literature</Subject>
<Author>Theodor Seuss Geisel</Author>
<Book>
如果我想使用此 XML 实例化 Book
类的实例,我知道的唯一方法是使用 XML Document 类并枚举 XML 节点。
.net 框架是否提供了一些用 XML 代码实例化类的方法?如果没有,实现此目的的最佳做法是什么?
【问题讨论】:
抱歉重复。感谢您的回答! :-) 【参考方案1】:有几种方法可以反序列化 XML 文档 - 位于 System.Xml.Serialization
中的 XmlSerializer
和位于 System.Runtime.Serialization
中的较新的 DataContractSerializer
。
两者都要求您使用告诉序列化程序如何操作的属性(每个属性不同)来装饰您的类成员。
【讨论】:
【参考方案2】:您可以只使用 XML 序列化从 XML 创建类的实例:
XmlSerializer serializer = new XmlSerializer(typeof(Book));
using (StringReader reader = new StringReader(xmlDocumentText))
Book book = (Book)(serializer.Deserialize(reader));
【讨论】:
+1 简洁的解决方案 这在我的项目中效果很好。谢谢! 简单明了..太棒了..谢谢:)以上是关于在 C# 中将 XML 字符串解析为类? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 中将日期字符串转换为 DateTime 对象? [复制]