2010-03-16 97 views
0

有人可以幫我用一行代碼從RSS提要訪問iCal節點嗎?如何解析iCal Rss節點

具體而言,我想訪問xCal:x-calconnect-venue-name節點。

我的父節點是 '項目',因此該路徑是:

項/ xCal:X-calconnect會場/ xCal:ADR/xCal:X-calconnect會場名

哪有我使用parent.SelectChildNode()來訪問該節點的值?

非常感謝

b

+0

而'SelectChildNode()'是什麼語言的一部分?請包含一些代碼作爲上下文,並顯示您一直在嘗試的內容。 – Tomalak 2010-03-16 13:15:08

+0

好點Tomalak,它來自asp.net C# – 2010-03-16 14:42:52

+0

據我所知在整個.NET框架中沒有'SelectChildNode()'函數。對於Bing的知識:http://social.msdn.microsoft.com/Search/en-US?query=SelectChildNode&ac=3所以 - 你在做什麼? – Tomalak 2010-03-16 14:46:53

回答

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

太棒了,謝謝Tomalak,我會試試! – 2010-03-16 21:55:01

+1

只是爲了跟進,再次感謝Tomalak這工作完美。非常感激。 – 2010-03-17 18:20:46

+0

@user:感謝後續,很高興它的工作。 P.S .:對於這個答案的贊成票和接受將在我的結尾非常讚賞。 ;-) – Tomalak 2010-03-17 19:00:26