2010-04-21 77 views
2

我想从本地存储的XML数据重新创建一个SyndicationFeed对象(System.ServiceModel.Syndication)。有没有办法从字符串创建SyndicationFeed?

如果我正在使用XMLDocument,这将很容易。我将调用LoadXml(string)。

SyndicationFeed将只从XMLReader加载。 XMLReader将仅使用Stream或其他XMLReader或TextReader。

由于为XMLDocument会加载一个字符串,我试图做到这一点,如下所示(在扩展方法的形式):

public static SyndicationFeed ToSyndicationFeed(this XmlDocument document) 
    { 
     Stream thestream = Stream.Null; 
     XmlWriter thewriter = XmlWriter.Create(thestream); 

     document.WriteTo(thewriter); 

     thewriter.Flush(); 
     XmlReader thereader = XmlReader.Create(thestream); 

     SyndicationFeed thefeed = SyndicationFeed.Load(thereader); 

     return thefeed; 
    } 

我不能得到这个工作。即使将XMLDocument填充到要加载到SyndicationFeed中的Feed中,Stream也始终为空。

任何帮助或指示你可以给予最有帮助。

感谢, 罗伯托

回答

6

由于StringReader延伸TextReader的,这应该工作:

TextReader tr = new StringReader(xmlString); 
XmlReader xmlReader = XmlReader.Create(tr); 
SyndicationFeed feed = SyndicationFeed.Load(xmlReader); 
+0

*头*办公桌我忘了StringReader。让我试试看。 – 2010-04-21 21:15:42

+0

它工作。感谢负载。 – 2010-04-21 21:19:23

+0

没问题,很高兴帮助。 – Lee 2010-04-21 21:23:49

相关问题