0
私はC#を開始しています。私はウェブサイトからテーブルを取得して、それをdatagridviewに表示しようとしていました。 最初の2つの列を最初に取得しようとしましたが、データを取得できますが、2番目の列に表示されます。htmlagilitypackでhtmlテーブルを取得する
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Web;
using System.Net;
using HtmlAgilityPack;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
private DataTable dt;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string htmlCode = "";
using (WebClient client = new WebClient())
{
client.Headers.Add(HttpRequestHeader.UserAgent, "AvoidError");
htmlCode = client.DownloadString("http://www.sismologia.cl/links/ultimos_sismos.html");
}
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlCode);
dt = new DataTable();
dt.Columns.Add("Local", typeof(string));
dt.Columns.Add("UTC", typeof(string));
int count = 0;
foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table"))
{
richTextBox1.Text = htmlCode;
foreach (HtmlNode row in table.SelectNodes("//*[@id=\"main\"]/table//tr"))
{
foreach (var cell in row.SelectNodes("//*[@id=\"main\"]/table//tr//td"))
{
DataRow dr = dt.NewRow();
if ((count % 2 == 0))
{
dr["Local"] = cell.InnerText.Replace(" ", " ");
}
else
{
dr["UTC"] = cell.InnerText.Replace(" ", " ");
dt.Rows.Add(dr);
}
count++;
}
}
dataGridView1.DataSource = dt;
}
}
}
}