【发布时间】:2013-12-02 06:46:22
【问题描述】:
我正在将 HTML 表格行解析为文本文件。我只想要前两列,在我的例子中是td[1] 和td[2]。我希望输出格式如下,以便稍后将它们插入 MySQL 数据库。
Mon, Monday
Tue, Tuesday
Wed, Wednesday
但我当前的文本文件输出如下,在互联网上搜索解决方案后我仍然不知道如何修复它。我想保持以下格式不变,但我完全不知道如何在 MySQL 数据库的每个数据库行中将“Mon”插入 column1 和将“Monday”插入 column2。
Mon,
Monday
Tue,
Tuesday
Wed,
Wednesday
这是我的代码:
private void btn_parse_Click(object sender, EventArgs e)
{
string FileName = @"..\..\bin\Debug\htm\allaim.htm";
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(FileName);
HtmlNodeCollection tables = doc.DocumentNode.SelectNodes("//table");
HtmlNodeCollection rows = tables[3].SelectNodes(".//tr");
for (int i = 0; i < rows.Count; ++i)
{
HtmlNodeCollection cols = rows[i].SelectNodes(".//td[1]");
for (int j = 0; j < cols.Count; ++j)
{
string value = cols[j].InnerText;
FileStream fs = new FileStream(@"..\..\bin\Debug\txt\" + "allaim.txt", FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(value + ",");
sw.Flush();
sw.Close();
fs.Close();
}
HtmlNodeCollection cols2 = rows[i].SelectNodes(".//td[2]");
for (int j = 0; j < cols2.Count; ++j)
{
string value = cols2[j].InnerText;
FileStream fs = new FileStream(@"..\..\bin\Debug\txt\" + "allaim.txt", FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(value);
sw.Flush();
sw.Close();
fs.Close();
}
}
MessageBox.Show("Done writing!");
}
也许我做错了,我是 C# winforms 的新手。任何帮助将不胜感激,在此先感谢您! :)
【问题讨论】:
标签: c# mysql winforms parsing html-agility-pack