我正在创建一个自定义(私有,非商业)实用程序来解析RSS提要。由于我已经需要这么做几年了,所以我在CodeDisplay.com
提到了一个例子。我在VB.NET中提供代码,但是 - 我确信C#程序员也可以识别这些概念。
简而言之,有问题的代码如下。我的第一次迭代使用了路透社的饲料。
Dim MyRssRequest As WebRequest = WebRequest.Create("http://feeds.reuters.com/reuters/topNews")
Dim MyRssResponse As WebResponse = MyRssRequest.GetResponse()
Dim MyRssStream As Stream = MyRssResponse.GetResponseStream()
Dim MyRssDocument As XmlDocument = New XmlDocument()
MyRssDocument.Load(MyRssStream)
Dim MyRssList As XmlNodeList = MyRssDocument.SelectNodes("rss/channel/item")
Dim sTitle As String = ""
Dim sLink As String = ""
Dim sDescription As String = ""
'Iterate/Loop through RSS Feed items
For i As Integer = 0 To MyRssList.Count - 1
...
此代码可根据需要运行。但是 - 如果我将相应的行更改为以下(到另一个新闻来源):
Dim MyRssRequest As WebRequest = WebRequest.Create("http://api.breakingnews.com/api/v1/item/?format=rss")
...和...
Dim MyRssList As XmlNodeList = MyRssDocument.SelectNodes("feed/entry")
...这段代码似乎无法找到任何"条目"项目。我使用http://xmlgrid.net/处的工具来理智地检查我对层次结构的理解。这个工具似乎报告说两个XML结构都很好。
我很好奇.NET XML(System.xml)对" End of Line"人物,但我发现这是值得怀疑的。
我觉得这很简单,我忽略了。
更新:
我可以使用
单步执行这些项目 Dim MyRssList As XmlNodeList = MyRssDocument.ChildNodes(1).ChildNodes
对于我对本文档的XPath的理解,我一定会遗漏一些东西。我希望能够使用XPath使用.SelectNodes方法(函数)。