我正在使用HTMLAgilityPack来解析表格中的单元格。根据我的理解,这段代码应该只输出" test"一旦。但出于某种原因,它输出" test"两次,每10秒两次。
输出图片:https://i.gyazo.com/714a880a626c262b03df2b49dcb7711a.png
我做错了什么,或者这是HTMLAgilityPack的问题?我已经在StackOverflow和其他教程网站上尝试了多种解决方案来实现这一点,但我尝试的每个解决方案都是这样做的。我需要能够读取每个单元格,这只是我测试我是否可以得到一个没有重复的输出,但我想我不能。
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("<tr><td>test</td><td>test 2</td></tr>");
var rows = doc.DocumentNode.SelectNodes("//tr");
if (rows != null && rows.Count > 0)
{
foreach (var row in rows)
{
var cells = row.SelectNodes(".//td");
Console.WriteLine(cells[0].InnerText);
return;
}
}
答案 0 :(得分:0)
我没有收到你所描述的错误。因此,问题必须出在您用于调用问题中所发布内容的任何代码中。我不知道调用代码是什么,但下面是一些读取表中所有单元格的代码。
首先,表格:
email := w3id
username := "286000_" + w3id
address1 := "1101 Kitchawan Road"
city := "Yorktown Heights"
companyName := "WIS - RIS Account"
state := "NY"
country := "US"
postalCode := "10598"
timezoneID := 117
userStatusID := 1001
sslVpnAllowedFlag := true
templateObject := datatypes.User_Customer{
Email: &email,
Username: &username,
Address1: &address1,
City: &city,
CompanyName: &companyName,
State: &state,
Country: &country,
PostalCode: &postalCode,
FirstName: &firstname,
LastName: &lastname,
TimezoneId: &timezoneID,
UserStatusId: &userStatusID,
SslVpnAllowedFlag: &sslVpnAllowedFlag,
}
fmt.Printf("Registering w3id %s, %s %s, with SL\n", w3id, firstname, lastname)
//password := pg.NewPassword(12)
password := "Temp4now!"
userService := services.GetUserCustomerService(sess)
u, err := userService.CreateObject(&templateObject, &password, &password)
if err != nil {
fmt.Println(err)
return
}
fmt.Printf("User registered: %s, password: %s\n", *u.Username, password)
我在你的例子中添加了一行。
现在,我假设您希望将值放入某种类型的强类型IEnumerable中。所以这是IEnumerable将基于的类:
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(@"
<table>
<tr>
<td>test</td>
<td>test 2</td>
</tr>
<tr>
<td>test 3</td>
<td>test 4</td>
</tr>
</table>
");
现在是将Html数据读入强类型对象的代码:
public class StronglyTypedRow {
public string columnOne {get;set;}
public string columnTwo {get;set;}
}
如果您希望在控制台中阅读它:
var importedTable = new List<StronglyTypedRow>();
var rows = doc.DocumentNode.SelectNodes("//tr");
if (rows != null && rows.Count > 0) {
foreach (var row in rows) {
var cells = row.SelectNodes(".//td");
var importedRow =
new StronglyTypedRow {
columnOne = cells[0].InnerText,
columnTwo = cells[1].InnerText
};
importedTable.Add(importedRow);
}
}
希望它有所帮助。