Html Agility Pack selectnodes返回null

c# html-agility-pack html-parsing

我正在使用Windows Phone 8設備並嘗試使用來自http://www.livescience.com/41480-3d-printed-kidneys-take-small-steps.html的 html敏捷包來解析html文檔我可以獲得<title>標籤很容易,但現在我想從該文檔中獲取整個<p>標籤。我已經嘗試了這兩個解決方案但它不起作用。這是我基於這些解決方案的實際代碼

private void loadDoc()
    {
        try
        {
            HtmlWeb.LoadAsync("http://www.livescience.com/41480-3d-printed-kidneys-take-small-steps.html", Html_Completed);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

    private void Html_Completed(object sender, HtmlDocumentLoadCompleted e)
    {
        doc = e.Document;
        title = doc.DocumentNode.SelectSingleNode("//title");
        p = doc.DocumentNode.SelectNodes("//p");
        foreach(var node in p)
        {
          pr = node.InnerText; //that's the text you are looking for
        }
        text1.Text = title.InnerText;
        if (!pr.Equals("") && pr != "")
        {
            text2.Text = pr;
        }
        else
        {
            MessageBox.Show("null");
        }
    }

我使用if塊來確定foreach是否返回null。有人知道如何解決這個問題嗎?我將不勝感激任何幫助。謝謝。

熱門答案

嘗試做:

p = doc.DocumentNode.SelectNodes(".//p");

代替:

p = doc.DocumentNode.SelectNodes("//p");

因為p是一種標籤,而不是類或id。



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因