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.
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.