mirror of
https://github.com/ckaczor/FeedCenter.git
synced 2026-01-13 17:22:48 -05:00
Fix parsing of Atom feeds with attribute namespaces
This commit is contained in:
@@ -44,13 +44,13 @@ namespace FeedCenter.FeedParsers
|
||||
if (node.Attributes == null)
|
||||
break;
|
||||
|
||||
XmlNode relNode = node.Attributes["rel"];
|
||||
XmlNode relNode = GetAttribute(node, "rel");
|
||||
|
||||
if (relNode != null)
|
||||
rel = relNode.InnerText;
|
||||
|
||||
if (string.IsNullOrEmpty(rel) || rel == "alternate")
|
||||
Feed.Link = node.Attributes["href"].InnerText.Trim();
|
||||
Feed.Link = GetAttribute(node, "href").InnerText.Trim();
|
||||
|
||||
break;
|
||||
|
||||
@@ -103,14 +103,14 @@ namespace FeedCenter.FeedParsers
|
||||
if (childNode.Attributes == null)
|
||||
break;
|
||||
|
||||
XmlNode relNode = childNode.Attributes["rel"];
|
||||
XmlNode relNode = GetAttribute(childNode, "rel");
|
||||
|
||||
if (relNode != null)
|
||||
rel = relNode.InnerText.Trim();
|
||||
|
||||
if (string.IsNullOrEmpty(rel) || rel == "alternate")
|
||||
{
|
||||
var link = childNode.Attributes["href"].InnerText;
|
||||
var link = GetAttribute(childNode, "href").InnerText;
|
||||
|
||||
if (link.StartsWith("/"))
|
||||
{
|
||||
@@ -131,5 +131,13 @@ namespace FeedCenter.FeedParsers
|
||||
|
||||
return feedItem;
|
||||
}
|
||||
|
||||
private static XmlAttribute GetAttribute(XmlNode node, string attributeName)
|
||||
{
|
||||
if (node?.Attributes == null)
|
||||
return null;
|
||||
|
||||
return node.Attributes[attributeName, node.NamespaceURI] ?? node.Attributes[attributeName];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user