如何解析iCal Rss节点

时间:2010-03-16 12:47:57

标签: xpath icalendar

有人可以帮助我使用一行代码从RSS源访问iCal节点吗?

具体来说,我想访问xCal:x-calconnect-venue-name节点。

我的父节点是'item',因此路径为:

项/ xCal:X-calconnect会场/ xCal:ADR / xCal:X-calconnect-场所名称

如何使用parent.SelectChildNode()来访问该节点的值?

非常感谢

B'/ P>

1 个答案:

答案 0 :(得分:0)

如果RSS项目内容是这样的(省略不相关的节点)

<item>
  <xCal:adr>
    <xCal:x-calconnect-venue-name>venue name</xCal:x-calconnect-venue-name>
  </xCal:adr>
</item>

然后你可以做

XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.xmlDoc);
nsmgr.AddNamespace("xCal", "urn:ietf:params:xml:ns:xcal");
// possibly add the RSS namespace as well?

XmlNodeList nodes = xmlDoc.SelectNodes("rss/channel/item"); 
foreach (XmlNode node in nodes) { 
  XmlNode venue = node.SelectSingleNode(".//xCal:x-calconnect-venue-name", nsmgr);
  // watch out, there might not be a select result!
  if (venue != null) {
    string s = venue.InnerText;
    // ...
  }
}  

或直接

string xpath = "rss/channel/item//xCal:x-calconnect-venue-name";
XmlNodeList nodes = xmlDoc.SelectNodes(xpath, nsmgr); 
foreach (XmlNode venue in nodes) { 
  string s = venue.InnerText;
  // ...
}