Html页面看起来像这样
<tr>
<th rowspan="4" scope="row">General</th>
<td class="ttl"><a href="network-bands.php3">2G Network</a></td>
<td class="nfo">GSM 850 / 900 / 1800 / 1900 </td>
</tr><tr>
<td class="ttl"><a href="network-bands.php3">3G Network</a></td>
<td class="nfo">HSDPA 900 / 1900 / 2100 </td>
</tr>
为此我尝试使用
var text = document.getElementsByClassName("nfo")[0].innerHTML;
由Alex提供
但是我收到了这个错误 错误2当前上下文中不存在名称“document”C:\ Users \ Nabi Javid \ Documents \ Visual Studio 2008 \ Projects \ WpfApplication2 \ WpfApplication2 \ Window1.xaml.cs 30 22 WpfApplication2
我错过了一些Libary或其他什么
目前我的代码就像那样
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.Load("nokia_c5_03-3578.html");
var text = document.getElementsByClassName("nfo")[0].innerHTML;
}
}
}
答案 0 :(得分:2)
您正在使用javascript代码混合C#代码。
而不是:
var text = document.getElementsByClassName("nfo")[0].innerHTML;
输入:
var text = htmlDoc.DocumentNode.SelectNodes("//td[@class='nfo']")[0].InnerHtml;
为了简单起见,我没有检查异常。
答案 1 :(得分:1)
我对.net并不是很深入,但看起来你正试图混合使用JavaScript代码
var text = document.getElementsByClassName("nfo")[0].innerHTML;
使用您的.net代码...?
答案 2 :(得分:0)
您必须使用htmlDoc
变量来调用您的案例中的方法。
顺便说一句,HtmlDocument
类没有具有该名称的方法。尝试查看是否可以在this list中找到符合您需求的其他匹配项。
如错误所示,document
变量不会退出代码。
答案 3 :(得分:0)
var text = htmlDoc.getElementsByClassName("nfo")[0].innerHTML;
?不熟悉HTML Agility Pack,但这似乎有意义
答案 4 :(得分:0)
您可以使用next方法按类名获取元素,该方法返回在一个类属性中定义的几个类的元素:
private HtmlNodeCollection GetElementsByClassName(HtmlDocument htmlDocument, string className)
{
string xpath =
String.Format(
"//*[contains(concat(' ', normalize-space(@class), ' '), ' {0} ')]",
className);
return htmlDocument.DocumentNode.SelectNodes(xpath);
}