簡體   English   中英

Xdocument,C#的后代

[英]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文件結構。 通過代碼的外觀,您應該看到帶有POPULARITYTEXT標簽,這些是您選擇的節點/屬性/值。

.Descendants返回一個集合,由於您提供POPULARITY ,它將帶回XML文件中<POPULARITY>標記內的元素。

然后,您查看Collection后代為Popularity每個節點,並選擇一個屬性為TEXT的項目。 您返回找到的第一個值,如果集合不包含帶有TEXT屬性的節點,則返回null。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM