我想讀取使用C#和Linq到XML的RSS源。 Feed以utf-8編碼(請參閱http://pc03224.kr.hsnr.de/infosys/feed/),除了description節點之外,通常將其正常工作,因爲它被封裝在CDATA節中。使用Linq-to-XML和C#讀取RSS提要 - 如何解碼CDATA部分?
由於某種原因,在讀取「description」標記的內容後,我無法在調試器中看到CDATA標記,但我想它一定在某處,因爲只有在本節中,德語Umlaute(äöü)和其他特殊字符未正確顯示。相反,它們保留在編碼爲ü
的字符串utf-8中。
我能以某種方式正確地讀出它們,或者至少將它們解碼後?
這是RSS節讓我煩惱的樣本:
<description><![CDATA[blabla bietet Hörern meiner Vorlesungen “IAS”, “WEB” und “SWE” an, Lizenzen für blabla [...]]]></description>
這裏是我的代碼讀出並解析RSS訂閱源數據:提前
RssItems = (from xElem in xml.Descendants("channel").Descendants("item")
select new RssItem
{
Content = xElem.Descendants("description").FirstOrDefault().Value,
...
}).ToList();
謝謝!
解碼這種CDATA的一種更好的方法可能是在片段模式中使用'StringReader'中包含的內容的'XmlReader' - 這將消除對ASP.NET程序集的依賴。 – 2009-11-12 22:20:18
這對我們的項目不是問題。一般來說,一個好主意。 – Shackles 2009-11-12 22:56:04