C# 为什么方法 HtmlDocument.GetElementById 匹配标记的属性名称?

C# Why Method HtmlDocument.GetElementById matchs tag's attribute name?

HtmlDocument.GetElementById("$id") 

我想使用此方法获取带有 $id 的元素,但它匹配 meta 标签,其属性值与 $id.

Html文档是这样的:

<html>
    <head>
        <meta name="description" content="">
    </head>
    <body>
        <div id="description"></div>
    </body>
</html>

我试图获取 ID 为 "description" 的标签 div:

HtmlElement elem = doc.GetElementById("description");

但我得到的是 meta 而不是 div。为什么 meta 标签匹配?

试试这个:-

HtmlDocument HtmlDocument = webBrowser1.Document;
MessageBox.Show(HtmlDocument.Body.All["description"].TagName);

希望对您有所帮助?

为什么Here is an official reference from Microsoft: getElementById 方法:Returns 对具有指定 ID NAME 属性值的第一个对象的引用。

解决方案:你应该避免在正文中使用 name attrib,这样如果你使用 myHtmlDocument.Body.All[id] 公式作为 sharique ansari 提到的,你可以通过 id 引用标签。

干杯