c#将无序列表转换为一系列文本框

时间:2013-09-25 09:40:12

标签: c# asp.net

我的SQL数据库正在输出一个类似于html的hb:

<ul><li>Test 1</li><li>Test 2</li></ul>

我想将其转换为文本框列表,如下所示:

<textarea>Test 1</textarea><textarea>Test 2</textarea>

我该怎么做?我尝试过解析为XML,但这似乎不起作用,似乎是一种冗长的做事方式。

2 个答案:

答案 0 :(得分:0)

我最近发现了HTML Agility Pack这使得很容易做到这样的事情:

var nodes= doc.DocumentNode.Descendants().Where(n => n.Name.StartsWith("li")).ToList();

然后,您可以遍历该集合并构建您的TextArea

foreach (HTML.HtmlNode node in nodes)
{
    // ... build your text area here
}

答案 1 :(得分:0)

根据您问题的措辞,我推断您主要是在寻找一种方法来访问HTML片段的DOM。可能还有其他工具,但我可以推荐Html Agility Pack,它可以作为Nuget包(http://htmlagilitypack.codeplex.com/)使用。

加载DOM结构后,您可以根据需要访问和修改它,也可以生成输出html。

这个库对写得不好的HTML非常宽容,所以如果您的数据库值受到较少的控制(例如用户输入),那么这是一个不错的选择。