Hallo, ich mache HttpWebResponse und bekomme die HtmlPage mit allen Daten, die ich brauche, zum Beispiel eine Tabelle mit Datumsinformationen, die ich in der Array-Liste speichern und in die XML-Datei speichern muss
Beispiel für HTML-Seite
<table>
<tr>
<td class="padding5 sorting_1">
<span class="DateHover">01.03.14</span>
</td>
<td class="padding5 sorting_1">
<span class="DateHover" >10.03.14</span>
</td>
</tr>
</table>
Mein Code funktioniert nicht, ich benutze das HtmlAgilityPack
private static string GetDataByIClass(string HtmlIn, string ClassToGet)
{
HtmlAgilityPack.HtmlDocument DocToParse = new HtmlAgilityPack.HtmlDocument();
DocToParse.LoadHtml(HtmlIn);
HtmlAgilityPack.HtmlNode InputNode = DocToParse.GetElementbyId(ClassToGet);//here is the problem i dont have method DocToParse.GetElementbyClass
if (InputNode != null)
{
if (InputNode.Attributes["value"].Value != null)
{
return InputNode.Attributes["value"].Value;
}
}
return null;
}
Sow ich muss diese Daten lesen, um das Datum 01.03.14 und 10.02.14 zu erhalten, um dieses in der Array-Liste (und dann in der xml-Datei) speichern zu können
Irgendwelche Ideen wie bekomme ich diese Daten (01.03.14 und 10.02.14)?
Html Agility Pack verfügt über XPATH-Unterstützung, sodass Sie Folgendes tun können:
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//span[@class='" + ClassToGet + "']"))
{
string value = node.InnerText;
// etc...
}
Das bedeutet: Holen Sie alle SPAN-Elemente vom Anfang des Dokuments (erstes /), rekursiv (zweites /), die ein bestimmtes CLASS-Attribut haben. Dann hol dir für jedes Element den inneren Text.