通过ID获取div内的HTML元素(ID不是唯一的)

时间:2019-06-13 05:34:50

标签: c# html

我正在开发add以读取Web浏览器数据并将其存储到字典中。 在此过程中,我需要按ID访问数据,但是ID在页面上不是唯一的。页面看起来像这样。

<div id="ID1"> 
<tbody>
    <tr>
        <td id="1000" data-field="1">
            text
        </td>
    </tr>
</tbody>

<div id="ID2"> 
<tbody>
    <tr>
        <td id="1000" data-field="2">
            Some other text
        </td>
    </tr>
</tbody>

两个div元素都在同一页面上

当我通过ID获得元素时,它只会给我第一个元素,而不是第二个元素。

这是我的代码

            HtmlElement myElements = webBrowser1.Document.GetElementById("ID2");
            HtmlElement myElements2 = myElements.Document.GetElementById("1000");

            if (myElements2.InnerText != null)
            {
                //Do something
            }

如何通过ID获取第二个元素的内部文本

1 个答案:

答案 0 :(得分:0)

这是我想出的最好,最简单的答案 我发现数据字段是页面中的唯一值,因此我遍历了元素并将其与数据字段进行了比较

HtmlElement Buildingcontacts = webBrowser1.Document.GetElementById("ID2");
HtmlElementCollection ifiels = Buildingcontacts.Document.GetElementsByTagName("td");
            foreach (HtmlElement element in ifiels)
            {
                string datafieldx = element.GetAttribute("data-field");
                if (datafieldx == "2")
                {
                    if (element.InnerText != null)
                    {
                       //do Somthing
                    }
                }

            }