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());   
            }
        }

html 解析 - 使用 C# 提取 HtmlElement “onclick” 属性的文本内容

您可以使用 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/