C# RSS阅读器对节点的部分读取

C# RSS阅读器对节点的部分读取,c#,rss,C#,Rss,下面是我一直在编写的一些代码,但它并没有读取RSS提要中的所有XML节点。仅显示第一个节点: 使用SyndicationFeed和Using系统服务模型 public class RssNews { public string Title; public string Description; public string Publication; } private string RSS() {

下面是我一直在编写的一些代码,但它并没有读取RSS提要中的所有XML节点。仅显示第一个节点:

使用SyndicationFeed和Using系统服务模型

 public class RssNews
    {
        public string Title;
        public string Description;
        public string Publication;
    }

    private string RSS()
    {
        XmlDocument rssXmlDoc = new XmlDocument();
        rssXmlDoc.Load("http://www.hamqsl.com/solarrss.php");

        XmlNodeList rssNodes = rssXmlDoc.SelectNodes("rss/channel/item");
        StringBuilder rssContent = new StringBuilder();

        foreach (XmlNode rssNode in rssNodes)
        {
            XmlNode rssSubNode = rssNode.SelectSingleNode("title");
            string title = rssSubNode != null ? rssSubNode.InnerText : "";

            rssSubNode = rssNode.SelectSingleNode("item");
            string item = rssSubNode != null ? rssSubNode.InnerText : "";

            rssSubNode = rssNode.SelectSingleNode("description");
            string description = rssSubNode != null ? rssSubNode.InnerText : "";

            rssContent.Append("<a href='" + item + "'>" + title + "</a><br>" + description);


        }
        return rssContent.ToString();
    }
    private void btCurrentData_Click(object sender, RoutedEventArgs e)
    {
        tbRSS.Text = RSS();

    }
公共类RssNews
{
公共字符串标题;
公共字符串描述;
公共字符串出版物;
}
私有字符串RSS()
{
XmlDocument rssXmlDoc=新的XmlDocument();
rssXmlDoc.Load(“http://www.hamqsl.com/solarrss.php");
XmlNodeList rssNodes=rssXmlDoc.SelectNodes(“rss/channel/item”);
StringBuilder rssContent=新建StringBuilder();
foreach(rssNodes中的XmlNode rssNode)
{
XmlNode rssSubNode=rssNode.SelectSingleNode(“标题”);
字符串title=rssSubNode!=null?rssSubNode.InnerText:;
rssSubNode=rssNode.SelectSingleNode(“项目”);
字符串项=rssSubNode!=null?rssSubNode.InnerText:;
rssSubNode=rssNode.SelectSingleNode(“说明”);
字符串描述=rssSubNode!=null?rssSubNode.InnerText:;
rssContent.Append(“
”+说明); } 返回rssContent.ToString(); } 私有无效btCurrentData_单击(对象发送方,路由目标e) { tbRSS.Text=RSS(); }
您可以看到完整的xml 例如,在firefox中使用view source

查看源代码:http://www.hamqsl.com/solarrss.php

您正在阅读
rss/channel/item
。在这个标题下,只有一个
标题
,因此您只能单独获取该数据

我假设您想阅读
solardata
,其路径是:
rss/channel/item/solar/solardata

e、 g

逻辑是查看实际的Xml,然后确定要在顶层选择哪个节点,然后查看其所有
ChildNodes

完整的XML供参考:

<?xml version="1.0" encoding="UTF-8" ?> 
<rss version="0.91">
    <channel>
        <title>HAMQSL.com Solar Data RSS Feed</title> 
        <link>http://www.hamqsl.com/solarrss.php</link> 
        <description>Solar Data RSS Feed Updates</description> 
        <language>en-us</language> 
        <item>
            <title>HAMQSL.com Solar Data</title> 
            <solar>
                <solardata>
                    <source url="http://www.hamqsl.com/solar.html">N0NBH</source>
                    <updated> 12 Aug 2018 0508 GMT</updated>
                    <solarflux>67</solarflux>
                    <aindex> 10</aindex>
                    <kindex> 4</kindex>
                    <kindexnt>No Report</kindexnt>
                    <xray> A1.1   </xray>
                    <sunspots>0</sunspots>
                    <heliumline> 94.1</heliumline>
                    <protonflux>1.82e-01</protonflux>
                    <electonflux>2.82e+00</electonflux>
                    <aurora> 1</aurora>
                    <normalization>1.99</normalization>
                    <latdegree>67.5</latdegree>
                    <solarwind>392.2</solarwind>
                    <magneticfield>  0.2</magneticfield>
                    <calculatedconditions>
                        <band name="80m-40m" time="day">Poor</band>
                        <band name="30m-20m" time="day">Poor</band>
                        <band name="17m-15m" time="day">Poor</band>
                        <band name="12m-10m" time="day">Poor</band>
                        <band name="80m-40m" time="night">Fair</band>
                        <band name="30m-20m" time="night">Poor</band>
                        <band name="17m-15m" time="night">Poor</band>
                        <band name="12m-10m" time="night">Poor</band>
                    </calculatedconditions>
                    <calculatedvhfconditions>
                        <phenomenon name="vhf-aurora" location="northern_hemi">Band Closed</phenomenon>
                        <phenomenon name="E-Skip" location="europe">Band Closed</phenomenon>
                        <phenomenon name="E-Skip" location="north_america">Band Closed</phenomenon>
                        <phenomenon name="E-Skip" location="europe_6m">Band Closed</phenomenon>
                        <phenomenon name="E-Skip" location="europe_4m">Band Closed</phenomenon>
                    </calculatedvhfconditions>
                    <geomagfield>ACTIVE</geomagfield>
                    <signalnoise>S3-S4</signalnoise>
                    <fof2> 4.4</fof2>
                    <muffactor> 3.11</muffactor>
                    <muf>13.68</muf>
                </solardata>
            </solar>
        </item>
    </channel>
</rss>

HAMQSL.com太阳能数据RSS源
http://www.hamqsl.com/solarrss.php 
Solar数据RSS源更新
恩美
太阳数据
N0NBH
2018年8月12日格林尼治标准时间0508
67
10
4.
没有报告
A1.1
0
94.1
1.82e-01
2.82e+00
1.
1.99
67.5
392.2
0.2
贫穷的
贫穷的
贫穷的
贫穷的
公平的
贫穷的
贫穷的
贫穷的
封闭式
封闭式
封闭式
封闭式
封闭式
活跃的
S3-S4
4.4
3.11
13.68
<?xml version="1.0" encoding="UTF-8" ?> 
<rss version="0.91">
    <channel>
        <title>HAMQSL.com Solar Data RSS Feed</title> 
        <link>http://www.hamqsl.com/solarrss.php</link> 
        <description>Solar Data RSS Feed Updates</description> 
        <language>en-us</language> 
        <item>
            <title>HAMQSL.com Solar Data</title> 
            <solar>
                <solardata>
                    <source url="http://www.hamqsl.com/solar.html">N0NBH</source>
                    <updated> 12 Aug 2018 0508 GMT</updated>
                    <solarflux>67</solarflux>
                    <aindex> 10</aindex>
                    <kindex> 4</kindex>
                    <kindexnt>No Report</kindexnt>
                    <xray> A1.1   </xray>
                    <sunspots>0</sunspots>
                    <heliumline> 94.1</heliumline>
                    <protonflux>1.82e-01</protonflux>
                    <electonflux>2.82e+00</electonflux>
                    <aurora> 1</aurora>
                    <normalization>1.99</normalization>
                    <latdegree>67.5</latdegree>
                    <solarwind>392.2</solarwind>
                    <magneticfield>  0.2</magneticfield>
                    <calculatedconditions>
                        <band name="80m-40m" time="day">Poor</band>
                        <band name="30m-20m" time="day">Poor</band>
                        <band name="17m-15m" time="day">Poor</band>
                        <band name="12m-10m" time="day">Poor</band>
                        <band name="80m-40m" time="night">Fair</band>
                        <band name="30m-20m" time="night">Poor</band>
                        <band name="17m-15m" time="night">Poor</band>
                        <band name="12m-10m" time="night">Poor</band>
                    </calculatedconditions>
                    <calculatedvhfconditions>
                        <phenomenon name="vhf-aurora" location="northern_hemi">Band Closed</phenomenon>
                        <phenomenon name="E-Skip" location="europe">Band Closed</phenomenon>
                        <phenomenon name="E-Skip" location="north_america">Band Closed</phenomenon>
                        <phenomenon name="E-Skip" location="europe_6m">Band Closed</phenomenon>
                        <phenomenon name="E-Skip" location="europe_4m">Band Closed</phenomenon>
                    </calculatedvhfconditions>
                    <geomagfield>ACTIVE</geomagfield>
                    <signalnoise>S3-S4</signalnoise>
                    <fof2> 4.4</fof2>
                    <muffactor> 3.11</muffactor>
                    <muf>13.68</muf>
                </solardata>
            </solar>
        </item>
    </channel>
</rss>