首页 > 解决方案 > 在c#中如何使用html敏捷包获取唯一列表所有标签

问题描述

如何从 html 字符串中获取所有标签的唯一列表。但我只能一一提取标签。

代码

public static void HtmlParser()
{
    string html = @"<TD >
    <DIV align=right>Name :<B> </B></DIV></TD>
    <TD width=""50%"">
        <INPUT class=box value=John maxLength=16 size=16 name=user_name>
    </TD>
    <TR vAlign=center> <code> This is a <kwd>vba</kwd> code piece</code>  Hi I am sujoy";

    HtmlDocument htmlDoc = new HtmlDocument();
    htmlDoc.LoadHtml(html);
    string code = htmlDoc.DocumentNode.
    .SelectSingleNode("//code").InnerHtml;
    string TD = htmlDoc.DocumentNode
    .SelectSingleNode("//TD").InnerText;
}

对于上面的代码,我希望输出list{"DIV","TD","TR","CODE"}

标签: c#htmlasp.net-mvcparsingtags

解决方案


使用htmlDoc.DocumentNode.Descendants()和 用于唯一列表使用HashSet

public static void HtmlParser()
{
    HtmlDocument htmlDoc = new HtmlDocument();
    htmlDoc.LoadHtml("Your html string containing tags like <div></div>...");
    HashSet<string> hs = new HashSet<string>();
    foreach(var dec in htmlDoc.DocumentNode.Descendants())
    {
        hs.Add (dec.Name);
    }
}

推荐阅读