C#获取html标记的所有ID,并为标记设置内部文本

时间:2018-07-18 10:51:27

标签: c#

我有字符串html,我想获取字符串html中标签的所有ID名称。 在文件文本中获取字符串html:

<tr>
    <td class="X8">
    </td>
    <td colspan="6" class="X9"></td>
    <td colspan="4" class="X12" id="closedate">
    </td>
    <td colspan="6" class="X9"></td>
    <td colspan="4" class="X12" id="startdate">
    </td>
    <td class="X8">
    </td>
    <td class="X8" colspan="3">
    </td>
    <td class="X8">
    </td>
    <td colspan="9" class="X9"></td>
    <td colspan="6" class="X15" id="totalpayment"></td>
    <td class="X8">
    </td>
    <td class="X8">
    </td>
</tr>
<tr>
    <td class="X17">
    </td>
    <td class="X17" colspan="8">
    </td>
    <td class="X17" colspan="33">
    </td>
    <td class="X17">
    </td>
</tr>
<tr>
    <td class="X17">
    </td>
    <td class="X17" colspan="8">
    <td class="X17" colspan="16">
    </td>
    <td class="X17">
    </td>
    <td colspan="9" class="X20"></td>
    <td colspan="6" class="X23" id="approvaldate"></td>
    <td class="X17">
    </td>
    <td class="X17">
    </td>
</tr>

预期结果: 截止日期,开始日期,总付款额,批准日期。 然后我想为id名称标签设置内部文本 (例如:<td colspan="6" class="X23" id="approvaldate">2018/07/18</td>) 使用c#。请帮帮我。非常感谢。

1 个答案:

答案 0 :(得分:0)

从您的问题中我可以理解的是,您需要为您创建的简单字符串示例中的所有ID

<form id="form1" runat="server">
   <input id="Name" type="text" name="Full Name" runat="server" />
   <input id="Email" type="text" name="Email Address" runat="server" />
   <input id="Phone" type="text" name="Phone Number" runat="server" />
</form>


foreach (var control in Page.Form.Controls)
{
    if (control is HtmlInputControl)
    {
        var htmlInputControl = control as HtmlInputControl;
        string controlName = htmlInputControl.Name;
        string controlId = htmlInputControl.ID;
    }
}

另一种方法:-

HtmlElement table =  testWebBrowser.Document.GetElementById("TableID");
if (table != null)
{
    foreach (HtmlElement row in table.GetElementsByTagName("TR"))
    {
        // ...
    }
}