2012-03-13 65 views
1

我按照本指南(最详细的我已经发现迄今): http://blog.allanglen.com/2009/09/quickly-generate-c-data-objects-from-xml如何使用XML序列化程序从字符串读取xml数据?

但在“第4步:读取XML文件”我碰到一个问题,我不从获取我的XML数据一个文件,我从数据库中获取它作为字符串。

Im新的C#和XML,我不知道如何使它从第4步使用字符串工作!

我使用:

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

哪里dbString是从数据库中的字符串。

回答

3

你可以使用LoadXml方法:

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

同时还要注意XmlDocument尚未过时,XDocument是在内存中的XML文档从.NET 3.5和更高开始工作的首选方式:

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

UPDATE:

对不起,我没有看到你已经链接的博文。我被你在你的问题中发布的代码片段误导了,它实际上与上述文章中的第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); 
} 
+0

这就是我使用,如我的第一篇文章中所述。但是,我如何在第4步和之后的步骤中应用? – DannyThunder 2012-03-13 23:17:45

+0

@DannyThunder,请结帐我的更新。 – 2012-03-13 23:21:29

+0

谢谢!将实施它,并明天尝试! – DannyThunder 2012-03-13 23:28:51