2010-07-17 56 views

回答

0

media:keywords使用媒体命名空间前缀,这是绑定到命名空间 - urihttp://search.yahoo.com/mrss/

如果哟u能注册命名空间前缀,你可以使用像这样的XPATH:

/item[1]/media:group/media:keywords 

但是,如果你需要不依赖于空间前缀一个更通用的XPATH,你可以表达这样的:

/item[1]/*[local-name()='group' and namespace-uri()='http://search.yahoo.com/mrss/']/*[local-name()='keywords' and namespace-uri()='http://search.yahoo.com/mrss/'] 

应用到你的示例代码:

Dim Keywords As String = videoInfoNavigator.SelectSingleNode("/item[1]/*[local-name()='group' and namespace-uri()='http://search.yahoo.com/mrss/']/*[local-name()='keywords' and namespace-uri()='http://search.yahoo.com/mrss/']").Value 
+0

谢谢例如工作就像一个魅力。 我需要学习更多这个例题,因为我不懂XML了:) THAAANKK! – yan 2010-07-18 15:32:36

0

试试这个:

XmlNamespaceManager ns = new XmlNamespaceManager(doc.NameTable); 
ns.AddNamespace("m", "http://search.yahoo.com/mrss/"); 
var keywords = doc.CreateNavigator().SelectSingleNode("/item/m:group/m:keywords", ns); 
Console.WriteLine(keywords.Value); 

请注意,您使用的前缀根本无关紧要。这只是命名空间的缩写。