I’m using a CMS and found a function to generate a rss feed from content within folders. However I would like one of the rows removing from the list. I’ve done my research and I ‘think’ I should be using XmlDocument class to help me remove the row I don’t want. I’ve used Firebug and FirePath to get the XPath – but I cant seem to figure out how to apply it appropriately. I am also uncertain of whether I should be using .Load or .LoadXml – I’ve used the latter seing as though the feed displays fine. However I have had to convert ToString() to get rid of that overloaded match error….
The row I want removing is called “Archived Planes”
The XPath I get for FirePath is “.//*[@id=’feedContent’]/xhtml:div[11]/xhtml:h3/xhtml:a”
I am also assuming that .RemoveChild(node); will remove it out of rssData before I Response.Write. Thanks
Object rssData = new object();
Cms.UI.CommonUI.ApplicationAPI AppAPI = new Cms.UI.CommonUI.ApplicationAPI();
rssData = AppAPI.ecmRssSummary(50, true, "DateCreated", 0, "");
Response.ContentType = "text/xml";
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(rssData.ToString());
XmlNode node = xmlDocument.SelectSingleNode(@"xhtml:div/xhtml:h3/xhtml[a = 'Archived Planes']");
if (node != null)
{
node.ParentNode.RemoveChild(node);
}
Response.Write(rssData);
Edited to include output below
This is the what the response.write from rssData is pumping out:
<?xml version="1.0" ?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0">
<channel>
<title>Plane feed</title>
<link>http://www.domain.rss1.aspx</link>
<description></description>
<item>
<title>New Planes</title>
<link>http://www.domainx1.aspx</link>
<description>
This is the description
</description>
<author>Andrew</author>
<pubDate>Thu, 16 Aug 2012 15:55:53 GMT</pubDate>
</item>
<item>
<title>Archived Planes</title>
<link>http://www.domain23.aspx</link>
<description>
Description of Archived Planes
</description>
<author>Jan</author>
<pubDate>Wed, 15 Aug 2012 10:34:23 GMT</pubDate>
</item>
</channel>
</rss>
I suspect your xpath is incorrect, it looks like some funky dom element that you are referencing and not the xml element… e.g. for the following xml
This code will remove the userinfo node with an username element of pqr1