【发布时间】:2019-08-12 14:59:47
【问题描述】:
我有一个 C# 问题。 我设法从网页中解析出材料的价格(带有材料和价格列表),但我不知道如何将单个值提取为单个字符串或整数。我已将“价格”分配给一个字符串,但该字符串包含一个值数组。
这是 C# 代码:
var products = htmlDocument.DocumentNode.Descendants("div")
.Where(node => node.GetAttributeValue("id", "")
.Equals("accordion1")).ToList();
var productListItems = products[0].Descendants("tr")
.Where(node => node.GetAttributeValue("data-name", "")
.Contains("")).ToList();
foreach (var productListItem in productListItems)
{
Console.WriteLine(productListItem.GetAttributeValue("data-name", ""));
var tds = productListItem.Descendants("td").ToList();
var name = tds[0].InnerText;
var price = tds[1].InnerText.Trim('$');
Console.WriteLine(name);
Console.WriteLine(price);
}
控制台:
clay_r
Lehm
199
coal_r
Kohle
427
copper_r
Kupfer
312
etc.
现在我想要,我可以用一根绳子调用单一材料(如粘土)。这样我就为每个 materialPrice 提供了一个 int。
类似:
int clayPrice = int.Parse(the first price)
int coalPrice = int.Parse(the second price)
int copperPrice = int.Parse(the third price)
等等
我对 C# 很陌生,所以我不太了解它。我希望有人能理解我的问题并能帮助我。
【问题讨论】:
-
您可能应该考虑创建一个单独的类来保存每个项目的所有信息。现在你有点不连贯地处理数据,正如你所看到的,将相关的“链接”在一起更麻烦。
-
分配给“price”的字符串和int是否用换行符分隔?所有行中的模式都相同吗?
标签: c# visual-studio html-agility-pack