我想读取使用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