Html Agility Pack selectenodes gibt null zurück

c# html-agility-pack html-parsing

Frage

Ich arbeite an Windows Phone 8 Gerät und versuche, HTML-Dokument mit HTML-Agility-Pack von http://www.livescience.com/41480-3d-printed-kidneys-take-small-steps.html zu analysieren. Ich kann das <title> tag einfach, aber jetzt möchte ich die ganzen <p> Tags aus diesem Dokument bekommen. Ich habe diese zwei Lösungen eins und zwei ausprobiert, aber es funktioniert nicht. Dies ist mein tatsächlicher Code basierend auf diesen Lösungen

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");
        }
    }

Ich verwende if block, um zu bestimmen, ob der foreach null zurückgibt. Weiß jemand, wie man dieses Problem löst? Ich werde jede Hilfe schätzen. Vielen Dank.

Beliebte Antwort

Versuch es zu tun:

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

Anstatt von:

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

da p ist eine Art von Tag, keine Klasse oder ID.




Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum