C# 如何使用HtmlAlityPack提取以下字符串?
我想从以下HTML字符串中提取价格:C# 如何使用HtmlAlityPack提取以下字符串?,c#,html-agility-pack,C#,Html Agility Pack,我想从以下HTML字符串中提取价格: <span class="bold colorwhite size11 floatLeft textCenter cartbox_right">€ 150,42</span> 下面是我的代码的样子: private string getTextfrom() { var webGet = new HtmlWeb(); var doc = webGet.Load(txtURL.Text);
<span class="bold colorwhite size11 floatLeft textCenter cartbox_right">€ 150,42</span>
下面是我的代码的样子:
private string getTextfrom()
{
var webGet = new HtmlWeb();
var doc = webGet.Load(txtURL.Text);
HtmlNode price = doc.DocumentNode.SelectSingleNode("//span[@class='bold colorwhite size11 floatLeft textCenter cartbox_right']");
if (price != null) {
return price.InnerHtml;
}
else
return "nothing found";
}
您只需使用InnerText和Split即可获得150,42,如果这是您想要的:
HtmlNode priceNode = doc.DocumentNode.SelectSingleNode("//span[@class='bold colorwhite size11 floatLeft textCenter cartbox_right']");
string price = priceNode.InnerText.Split(';').Last().Trim();
啊,我明白了。已经有一段时间没上C了。。。谢谢只是想知道-它说System.Array不包含“Last”的任何定义。知道为什么吗?@Metro1337:这是系统的一部分。Linq名称空间。你在吗,啊,我明白了。非常感谢。它几乎工作完美,只是仍然显示0,00。很难理解为什么。也许你对此也有什么想法?@Metro1337:你在哪里以及如何输出它?你用过调试器来看看会发生什么吗?哦,该死,我把它的一切都忘得一干二净。我正在使用一个按钮输出lbl_price.Text=getTextfrom;如何准确地使用调试器?
HtmlNode priceNode = doc.DocumentNode.SelectSingleNode("//span[@class='bold colorwhite size11 floatLeft textCenter cartbox_right']");
string price = priceNode.InnerText.Split(';').Last().Trim();