如何使用XML Serializer从字符串中读取xml数据?

时间:2012-03-13 23:12:43

标签: c# xml string serialization xml-serialization

我正在遵循本指南(到目前为止我发现的最详细): http://blog.allanglen.com/2009/09/quickly-generate-c-data-objects-from-xml

但是在“第4步:读取XML文件”中遇到问题,我没有从文件中获取XML数据,我将其作为数据库中的字符串获取。

我是C#和XML的新手,我无法弄清楚如何使用字符串从步骤4开始工作!

我正在使用:

 XmlDocument doc = new XmlDocument();
                doc.Load(new StringReader(dbString));

其中dbString是数据库中的字符串。

1 个答案:

答案 0 :(得分:3)

您可以使用LoadXml方法:

string xml = ... go and fetch XML from your db
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);

另请注意,虽然XmlDocument尚未弃用,但XDocument是从.NET 3.5及更高版本开始使用内存中XML文档的首选方法:

string xml = ... go and fetch XML from your db
XDocument doc = XDocument.Parse(xml);

更新:

抱歉,我实际上没有查看您链接的博文。我在您的问题中发布的代码片段误导了我,这实际上与上述文章中的步骤4中所做的事情以及您所询问的内容无关。您似乎试图将XML字符串反序列化为对象。您可以使用StringReader:

string xml = ... go and fetch XML from your db
XmlSerializer serializer = new XmlSerializer(typeof(catalog));
using (StringReader reader = new StringReader(xml))
{
     catalog catalog = (catalog)serializer.Deserialize(reader);
}