如何用Java缩写HTML?
用户在表单中以HTML形式输入文本,例如:如何用Java缩写HTML?,java,html,parsing,xhtml,html-parsing,Java,Html,Parsing,Xhtml,Html Parsing,用户在表单中以HTML形式输入文本,例如: <p>this is my <strong>blog</strong> post, very <i>long</i> and written in <b>HTML</b></p> 因为这不是很容易做到正确,我通常剥离所有标签和截断。这可以很好地控制文本大小和外观,通常需要将其放置在需要控制的位置 请注意,您可能会发现我的建议非常保守,实际上并不是对您问题
<p>this is my <strong>blog</strong> post,
very <i>long</i> and written in <b>HTML</b></p>
因为这不是很容易做到正确,我通常剥离所有标签和截断。这可以很好地控制文本大小和外观,通常需要将其放置在需要控制的位置 请注意,您可能会发现我的建议非常保守,实际上并不是对您问题的正确答案。但大多数情况下,替代方案是:
- 去掉所有标签并截断
- 提供另一个内容可管理的富文本,该富文本将用作截断文本。当然,这仅适用于CMSE等情况
所以这里的问题是HTML不仅可以包含内容和样式(粗体、斜体),还可以包含结构(列表、表格、div等)。因此,一个好且安全的实现是将所有内联“样式化”标记(粗体、斜体等)分离并截断,同时跟踪未关闭的标记。我不知道任何库,但它应该不会如此复杂(对于80%)。 您只需要一个简单的“解析器”,它可以理解4种类型的令牌:
- 开始标记-所有以
结尾的标记
- 结束标记-所有以
结束的标记 - 自动关闭标签(如
)-所有以
开头但不是code//code,以code//code但不是code>结尾的标签 - 普通字符-所有不是其他类型的字符
我不知道你想用这段代码做什么,但你应该注意HTML/JavaScript注入攻击。如果你真的想缩写HTML,那么就直接做(按所需长度剪切文本),将简短的结果传递给大家,并希望得到最好的结果。这项常见任务有很多LIB和工具:
- 从(雅加达Taglibs已退休)
- 来自(Marnix van Bochove在评论中提到了allready。)
<p>this is my <strong>blog</strong> post, very <i>l</i>...</p>
this is my <strong>blog</strong> post, very <i>lo</i>...
MyLibrary.abbreviateHTML(string,20) ?