我们如何将XHTML修饰为任意数量的单词?
时间:2020-03-05 18:44:58 来源:igfitidea点击:
我们将如何在编程上将XHTML
缩写为任意数量的单词而又不留下未封闭或者损坏的标签?
IE。
<p> Proin tristique dapibus neque. Nam eget purus sit amet leo tincidunt accumsan. </p> <p> Proin semper, orci at mattis blandit, augue justo blandit nulla. <span>Quisque ante congue justo</span>, ultrices aliquet, mattis eget, hendrerit, <em>justo</em>. </p>
缩写为25个字是:
<p> Proin tristique dapibus neque. Nam eget purus sit amet leo tincidunt accumsan. </p> <p> Proin semper, orci at mattis blandit, augue justo blandit nulla. <span>Quisque ante congue...</span> </p>
解决方案
回答
遍历DOM树,使单词计数变量保持最新。当字数超过最大字数时,请插入" ..."并删除当前节点的所有后续同级,然后在进行递归时,删除其祖先的所有以下同级。
回答
我们需要将XHTML视为元素的层次结构,并将其视为元素的层次结构。这基本上就是处理XML的方式。然后,只需递归地遍历层次结构,就可以将单词的数量加在一起。当我们达到极限时,请丢掉其他所有东西。
我主要在PHP中工作,并且我将在PHP中使用DOMDocument类来帮助我完成此工作,我们需要使用所选语言查找类似的内容。
为了使事情更清楚,这是示例的层次结构:
- p - Proin tristique dapibus neque. Nam eget purus sit amet leo tincidunt accumsan. - p - Proin semper, orci at mattis blandit, augue justo blandit nulla. - span - Quisque ante congue justo - , ultrices aliquet, mattis eget, hendrerit, - em - justo - .
我们在span元素内达到25个字数限制,因此我们删除了span内所有剩余的文本并添加了省略号。可以丢弃所有其他子元素(文本和标签),并且可以丢弃所有后续元素。
据我所知,这应该始终为我们提供有效的标记,因为我们将其视为层次结构,而不仅仅是纯文本,所有必需的结束标记仍将存在。
当然,如果我们要处理的XHTML开头是无效的,请不要期望输出有效。
很抱歉,糟糕的层次结构示例无法解决如何嵌套列表的问题。