2010-02-24 46 views
4

我必须从整个html字符串中显示第一个N(例如说50或100)字符。我必须显示格式良好的html.If我应用简单的子字符串,这将使我一个不合格的HTML字符串 E.g.如何截断HTML字符串而不会将其格式化?

样品字符串:"<html><body><a href="http://foo.com">foo</a></body></html>"

trucated字符串:"<html><body><a href="http://foo.com">foo<"

这将让我malformated HTML :(

就如何实现这一目标的任何想法?

回答

3

您可以尝试使用HTML Agility Pack - 它会为你解析出HTML,但是你需要弄清楚如何自己生成一个截断版本,它应该使事情变得更容易,

0

我已经看到一些论坛系统只需在每一篇文章后附加一个</b> < />> </s>。你可以用类似的方式来解决这个问题。

当然,它的丑陋,它不会修复后<

这是迄今为止最简单的方法。更好的方法实际上会生成一棵树,然后......踢掉节点,直到满足要求。

+0

你的意思是标识缺少结束标签并以编程方式添加它们吗? – 2010-02-24 08:49:39

1

将HTML解析为DOM树。开始与最深/最内元件和

  • 除去最内节点的内容,或节点,如果它不具有内容
  • 校验字符串长度。

冲洗,起泡,重复。

如果您所需的长度足够小,这可能会将您的字符串截断为空字符串。

对于额外的踢腿,您可以尝试删除节点的属性