阅读XML for RSS RSS feed

时间:2013-04-05 15:37:29

标签: xml vb.net xml-parsing rss xmlnode

嘿所有我正在阅读我的XML RSS feed:

Dim rssSubNode As XmlNode = rssNode.SelectSingleNode("title")
Dim title As String = If(rssSubNode IsNot Nothing, rssSubNode.InnerText, "")

rssSubNode = rssNode.SelectSingleNode("itunes:author")
Dim author As String = If(rssSubNode IsNot Nothing, rssSubNode.InnerText, "")

标题检索得很好。但是,当它尝试获取作者时,它有一个错误:

Value of type 'System.Xml.XmlNodeList' cannot be converted to 'System.Xml.XmlNode'.

我的XML文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
  <channel>
      <item>
         <title>First Chaper</title>
         <itunes:author>My Name Here</itunes:author>
         <itunes:subtitle>First Chapter: The blah blah.</itunes:subtitle>
         etc etc....

我需要添加什么来获取该值?

1 个答案:

答案 0 :(得分:0)

问题是SelectSingleNode采用XPath而不仅仅是节点名称。所以当你在那里放一个带冒号的东西时,它假定你在谈论一个没有提供给它的命名空间,所以它抛出了那个异常。

然后简单的答案是将您的代码更改为:

rssSubNode = rssNode.SelectSingleNode("//*[name()='itunes:author']")

这有效地允许您忽略特殊字符。如果您想正确使用名称空间,那么我建议您查看XmlNamespaceManager