2010-04-21 49 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

相關問題