html 解析 - 使用 C# 提取 HtmlElement “onclick” 属性的文本内容
本文关键字:属性 文本 onclick 解析 使用 HtmlElement 提取 html | 更新日期: 2023-09-27 17:56:49
我有这个HTML代码
<div class="anc-style" onclick="window.open('./view.php?a=foo')"></div>
我想提取"onclick"属性的内容。我尝试做这样的事情:
div.GetAttribute("onclick").ToString();
理想情况下会产生字符串
"window.open('./view.php?a=foo')"
但它返回一个System.__ComObject。
我可以通过将("onclick")更改为("类")来获取类,onclick是怎么回事?
HtmlElementCollection div = webBrowser1.Document.GetElementsByTagName("div");
for (int j = 0; j < div.Count; j++) {
if (div[j].GetAttribute("class") == "anc-style") {
richTextBox1.AppendText(div[j].GetAttribute("onclick").ToString());
}
}
您可以使用 htmlDocument 类提取文档标签并提取数据,如下所示。 这只是一个例子
string htmlText = "<html><head></head><body><div class='"anc-style'" onclick='"window.open('./view.php?a=foo')'"></div></body></html>";
WebBrowser wb = new WebBrowser();
wb.DocumentText = "";
wb.Document.Write(htmlText);
foreach (HtmlElement hElement in wb.Document.GetElementsByTagName("DIV"))
{
//get start and end positions
int iStartPos = hElement.OuterHtml.IndexOf("onclick='"") + ("onclick='"").Length;
int iEndPos = hElement.OuterHtml.IndexOf("'">",iStartPos);
//get our substring
String s = hElement.OuterHtml.Substring(iStartPos, iEndPos - iStartPos);
MessageBox.Show(s);
}
也尝试使用div[j]["onclick"]
您使用的是什么浏览器?
我创建了一个可以尝试的jsfiddle,看看它是否适合您
http://jsfiddle.net/4ZwNs/102/