如何解析 iCal Rss 节点

发布于 2024-08-25 11:59:04 字数 264 浏览 9 评论 0原文

有人可以帮我编写一行代码来从 RSS 源访问 iCal 节点吗?

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

我的父节点是“item”,所以路径是:

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

我如何使用parent.SelectChildNode()来访问值那个节点?

非常感谢

b

Can someone help me with a line of code to access an iCal node from an RSS feed?

Specifically i want to access the xCal:x-calconnect-venue-name node.

My parent node is 'item', so the path is:

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

How can i use parent.SelectChildNode() to access the value of that node?

Many thanks

b

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一笑百媚生 2024-09-01 11:59:04

如果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;
  // ...
}

If the RSS item contents is something like this (irrelevant nodes omitted)

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

Then you could do

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;
    // ...
  }
}  

or directly

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;
  // ...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文