我必须在整个html字符串中显示前N个(例如50或100个)字符。我必须显示格式良好的html。如果我应用简单的子字符串,将得到一个malformated html字符串 例如。
示例字符串:"<html><body><a href="http://foo.com">foo</a></body></html>"
trucated string:"<html><body><a href="http://foo.com">foo<"
这会让我感觉格式错误:(
关于如何实现这一点的任何想法??
答案 0 :(得分:3)
您可以尝试使用HTML Agility Pack - 它会为您解析HTML,但您需要弄清楚如何自己生成截断版本。它应该会让事情变得更容易。
答案 1 :(得分:1)
将HTML解析为DOM树。从最深/最内层的元素开始,
冲洗,起泡,重复。
如果您想要的长度足够小,这可能会将您的字符串截断为空字符串。
对于额外的踢法,您可以尝试删除节点的属性。
答案 2 :(得分:0)
我见过一些论坛系统只是追加一个&lt; / b&gt;&lt; / u&gt;&lt; / i&gt;&lt; / s&gt;在每一个帖子之后。你可以用类似的方式来解决这个问题。
当然,它的丑陋并不能解决那个尾随&lt;
这是迄今为止最简单的方法。更好的方法实际上是生成一个树,然后......在满足要求之前关闭节点。