存储所有<;李>;<;ul>;作为Codebehing中的列表

本文关键字:gt lt Codebehing 列表 作为 存储 ul | 更新日期: 2023-09-27 18:22:11

通常我只会做:

List<string> list = new List<string>();
    foreach(string element in ul_myLst)
    {
        list.Add(element);
    }

但我真的不确定是怎么回事,因为它没有枚举器。

本质上,我只想做一些版本,将一个未排序列表的所有值存储到codeehind中的列表中。如果这是转发,也很抱歉,但我只发现有人在列表中插入项目,而没有保存列表中的项目。

存储所有<;李>;<;ul>;作为Codebehing中的列表

您需要一个HTML解析器来完成这项工作。不要使用正则表达式来解析HTML。

你可以使用HtmlAgilityPack。

标记:

<ul id="ul_myLst" runat="server">
     <li>1</li>
     <li>2</li>
     <li>3</li>
     <li>4</li>
     <li>5</li>
</ul>

代码背后:

HtmlGenericControl ul_myLst = (HtmlGenericControl)this.Page.FindControl("ul_myLst");
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(ul_myLst.InnerHtml);
List<string> result = doc.DocumentNode.SelectNodes("li").Select(x => x.InnerText).ToList();

这会给你一个包含以下内容的列表:

1 2 3 4 5

这样的东西适合你吗?

html:

<ul runat="server" id="ul_myLst">
 <li runat=server>item1</li>
 <li runat=server>item2</li>
 <li runat=server>item3</li>
</ul>

代码背后:

List<string> ListOfStuff = new List<string>();
foreach (Control item in ul_myLst.Controls)
{
   if (item is System.Web.UI.HtmlControls.HtmlGenericControl)
        {
           ListOfStuff.Add(((System.Web.UI.HtmlControls.HtmlGenericControl)item).InnerHtml); 
        }
}