如何使用C#从RSSFeed XML读取自定义元素

时间:2012-03-13 09:08:56

标签: asp.net rss

我想从XMl文件读取数据,该文件是预定义的格式,如给定的

<?xml version="1.0" encoding="utf-8"?>
 <rss version="2.0" xmlns:Poll="http://www.example.com">
 <channel>
 <title>Please Enter Title</title>
 <category>Please Enter Today's Voting Poll</category>
 <link>http://www.WebsiteURL.com</link>
<description>Please Enter Description</description>
<lastBuildDate>Fri, 09 Mar 2012 10:30:55 UT</lastBuildDate>
<item>
  <title>Topic Title</title>
  <Poll:ID>Poll Id</Poll:ID>
  <Poll:Answer1>answer</Poll:Answer1>
  <Poll:Date>Date</Poll:Date>
</item>

我无法读取元素标记前缀中包含Poll的数据。

foreach (XmlNode RSSNode in RSSChannelItemList)
        {
            XmlNode RSSSubNode;
            RSSSubNode = RSSNode.SelectSingleNode("title");
            string title = RSSSubNode != null ? RSSSubNode.InnerText : "";
            XNamespace Tips = "http://www.example.com";
            RSSSubNode = RSSNode.SelectSingleNode("ID");
            string link = RSSSubNode != null ? RSSSubNode.InnerText : "";
            link = RSSSubNode!=null ? RSSSubNode.InnerXml : "";
        }

我完全得到了标题值,但我无法获得ID的值 这是XMl中的自定义标记

任何人都可以建议我如何做到这一点

1 个答案:

答案 0 :(得分:1)

浏览此链接 View this Post  这可能很有用 您只需要定义一个名称空间,然后像这样使用它

     XmlNamespaceManager nameSpace = new XmlNamespaceManager(doc.NameTable);
     nameSpace.AddNamespace("Tips", "http://www.example.com");
     RSSSubNode = RSSNode.SelectSingleNode("Tips:ID",nameSpace);
     string link = RSSSubNode != null ? RSSSubNode.InnerText : "";