Я хочу получить текст html-страницы с помощью простого приложения в c #? Если есть вложенные элементы, т. Е.,
<Table>
<TR>
<TD>**ABC**
</TD>
<TD>**1**
</TD>
</TR>
<TR>
<TD>**XYZ**
</TD>
<TD>**2**
</TD>
</TR>
</Table>
Как получить текст (полужирный) напрямую values.I хочу сохранить их в моей базе данных, а также хотите показать в gridview?
HtmlDocument htmlSnippet = new HtmlDocument();
htmlSnippet = LoadHtmlSnippetFromFile();
private HtmlDocument LoadHtmlSnippetFromFile()
{
//TextReader reader = File.OpenText(Server.MapPath("~/App_Data/HtmlSnippet.txt"));
WebClient webClient = new WebClient();
const string strUrl = "http://www.dsebd.org/latest_PE_all2_08.php";
Stream reader = webClient.OpenRead(strUrl);
HtmlDocument doc = new HtmlDocument();
doc.Load(reader);
reader.Close();
return doc;
}
Из этого htmlSnippet
как я могу получить значение?
Я не уверен, что вам нужно ... учитывая ваш пример, вы хотите строку "**ABC****1****XYZ****2**"
?
Тогда это должно работать: htmlSnippet.Body.OuterText
EDIT: Хорошо, пытаясь пример для отдельных значений ...
HtmlElement tableElement = FindElement(HtmlDocument.Body, "table");
foreach(HtmlElement row in tableElement.Children)
{
if (row.Name.ToLower() == "tr")
{
// create whatever class you use for a row
foreach(HtmlElement cell in row.Children)
{
if (cell.Name.ToLower() == "td")
{
// add a new cell to your row using cell.InnerText
}
}
}
}
// *** snip ***
private HtmlElement FindElement(HtmlElement element, string name)
{
if (element.Name.ToLower() == name)
{
return element;
}
foreach(HtmlElement child in element.Children)
{
HtmlElement test = FindElement(test, name);
if (test != null)
{
return test;
}
}
return null;
}
Извините, у меня нет Visual Studio здесь, чтобы проверить код ... удачи ;-)