C# RSS阅读器对节点的部分读取
下面是我一直在编写的一些代码,但它并没有读取RSS提要中的所有XML节点。仅显示第一个节点: 使用SyndicationFeed和Using系统服务模型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() {
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>