[英]Xdocument,Descendants in C#
我有以下代码来获取alexa页面排名。
private int GetAlexaRank(string domain)
{
var alexaRank = 0;
try
{
var url = string.Format("http://data.alexa.com/data?cli=10&dat=snbamz&url={0}", domain);
var doc = XDocument.Load(url);
var rank = doc.Descendants("POPULARITY").Select(node => node.Attribute("TEXT").Value).FirstOrDefault();
if (!int.TryParse(rank, out alexaRank))
alexaRank = -1;
}
catch (Exception e)
{
return -1;
}
return alexaRank;
}
但是我真的不明白该代码是如何工作的??? 您能准确告诉我什么是"POPULARITY"
和"TEXT"
吗? 它们存储在哪里? 我不明白这种语法: doc.Descendants("POPULARITY").Select(node => node.Attribute("TEXT").Value).FirstOrDefault();
请!!!!
我建议您导航到代码中的url
,然后看一下XML
文件结构。 通过代码的外观,您应该看到带有POPULARITY
和TEXT
标签,这些是您选择的节点/属性/值。
.Descendants
返回一个集合,由于您提供POPULARITY
,它将带回XML文件中<POPULARITY>
标记内的元素。
然后,您查看Collection
后代为Popularity
每个节点,并选择一个属性为TEXT
的项目。 您返回找到的第一个值,如果集合不包含带有TEXT
属性的节点,则返回null。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.