[英]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.