我正在使用 CMS,并找到了一个从文件夹中的内容生成 rss 提要的功能。但是,我希望从列表中删除其中的一行。我已经完成了我的研究,我“认为”我应该使用 XmlDocument 类来帮助我删除我不想要的行。我已经使用 Firebug 和 FirePath 来获取 XPath - 但我似乎无法弄清楚如何正确应用它。我也不确定我应该使用 .Load 还是 .LoadXml - 我使用了后者,好像提要显示正常。但是我不得不转换 ToString() 来摆脱那个重载的匹配错误......
我要删除的行称为“存档平面”我为 FirePath 获得的 XPath 是“.//*[@id='feedContent']/xhtml:div[11]/xhtml:h3/xhtml:a”
我还假设 .RemoveChild(node); 在我 Response.Write 之前将其从 rssData 中删除。谢谢
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);
编辑以包括下面的输出
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>