我正在遵循本指南(到目前为止我发现的最详细): 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是数据库中的字符串。
答案 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);
}