나는 html 코드를 따라왔다.
<tr>
<td headers="header1"><b><a href="www.site.com">TITLE </a></b></td>
<td headers="header2"></td>
<td headers="header3" class="centrato">23/04/2014</td>
</tr>
데이터 테이블에 저장해야합니다.
HREF VALUE in "Link" column;
TITLE in "Title" column;
23/04/2014 in "Date" column;
나는 이것을 시도했다 :
int i = 0;
foreach (HtmlNode node in tmlDoc.DocumentNode.SelectNodes("//td[@headers='header1']"))
{
table.Rows.Add();
table.Rows[i]["Post"] = node.InnerText;
i++;
}
이 코드를 사용하면 데이터 테이블에 모든 제목을 추가 할 수 있지만 DATE 및 HREF를 추가 할 수 없으므로 제발 도와 줄 수 있습니까?
다음과 같이 할 수 있습니다.
//select all `<tr>` that contains specific `<td>`
foreach (HtmlNode node in tmlDoc.DocumentNode.SelectNodes("//tr[td[@headers='header1']]"))
{
table.Rows.Add();
//get <td headers='header1'> in current <tr>
var header1 = node.SelectSingleNode("./td[@headers='header1']");
table.Rows[i]["Title"] = header1.InnerText;
//get <a> in header1 then get it's href attribute value
table.Rows[i]["Link"] = header1.SelectSingleNode(".//a").GetAttributeValue("href", "");
//get innerText of <td headers='header1'> in current <tr>
table.Rows[i]["Post"] = node.SelectSingleNode("./td[@headers='header3']").InnerText;
i++;
}
InnerText 는 태그 사이의 텍스트를 제공합니다. Href
또는 Id
에 액세스하려면 ... GetAttributeValue
메소드를 사용해야합니다.
int i = 0;
foreach (HtmlNode node in tmlDoc.DocumentNode.SelectNodes("//tr"))
{
table.Rows.Add();
table.Rows[i]["Link"] = node.SelectSingleNode("//a").GetAttributeValue("href", "");
table.Rows[i]["Title"] = node.SelectSingleNode("//a").InnerText;
table.Rows[i]["Date"] = node.SelectSingleNode("//td[@headers='header3']").InnerText;
i++;
}