这是我的代码?
XmlDocument rssXmlDoc = new XmlDocument();
// Load the RSS file from the RSS URL
rssXmlDoc.Load("https://polsky.uchicago.edu/events/feed/");
var nsmgr = new XmlNamespaceManager(rssXmlDoc.NameTable);
nsmgr.AddNamespace("event", "http://www.w3.org/1999/XSL;Transform");
// Parse the Items in the RSS file
XmlNodeList rssNodes = rssXmlDoc.SelectNodes("rss/channel/item", nsmgr);
我知道XML中有一些包含“&”的元素,而且我也确实不应该自行解决此错误的RSS提要。但是,我不确定他们是否会遵守。我有什么可以做的吗?
引发以下异常:
解析EntityName时发生错误。 138行,位置26。
答案 0 :(得分:2)
您无法使用XML解析器解决此问题,因为它是无效的XML。 &不能逃脱。
但是,您可以将错误的XML作为字符串读取,用&
替换&
的字符串,然后使用常规XML解析器处理该字符串。
您也可以将其放在CDATA中,继续您的生活8-)
PS。如果使用第一种方法,请确保检查并处理其他<>"'
之类的“坏”字符(小于,大于,双引号,单引号)
答案 1 :(得分:1)
我使用System.Security.SecurityElement.Escape()来满足“ XML编码”要求。它的工作原理与System.Web.HttpUtility.HtmlEncode编码/解码
相同https://docs.microsoft.com/en-us/dotnet/api/system.security.securityelement.escape