1

我的 SQL 数据库正在输出一个看起来像这样的 html 块:

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

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

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

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

4

2 回答 2

0

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

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

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

于 2013-09-25T09:50:57.553 回答
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
}
于 2013-09-25T09:48:44.670 回答