我的 SQL 数据库正在输出一个看起来像这样的 html 块:
<ul><li>Test 1</li><li>Test 2</li></ul>
我想将其转换为如下所示的文本框列表:
<textarea>Test 1</textarea><textarea>Test 2</textarea>
我该怎么做呢?我试过解析成 XML,但这似乎不起作用,而且似乎是一种冗长的做事方式。
从您问题的措辞来看,我推断您主要是在寻找一种访问 HTML 片段的 DOM 的方法。可能还有其他工具可以做到这一点,但我可以推荐 Html Agility Pack,它可以作为 Nuget 包 ( http://htmlagilitypack.codeplex.com/ ) 使用。
加载完 DOM 结构后,您可以根据需要访问和修改它,还可以生成输出 html。
这个库对写得不好的 HTML 非常宽容,所以如果您的数据库值控制较少(例如,由用户输入),它是一个不错的选择。
我最近发现了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
}