你会怎么programmacially缩写 XHTML 对一个任意数字没有留下未关闭或破坏的标签?

<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>
有帮助吗?

解决方案

Recurse通过DOM树,保持一个字计数的变量可达日期。当该词数超过了你的最高字数,插入"...",并删除以下所有的兄弟姐妹的前节点,然后,你回去了通过递归,删除以下所有的兄弟姐妹的每一其祖先。

其他提示

你需要考虑的XHTML作为一个层次结构的要素,并把它作为这样的。这是基本的方式XML是意味着被处理。然后只要通过的层次结构的递归,增加该数字在一起。当你打你的限制把所有的东西都丢掉。

我的工作主要是在PHP,我会使用DOMDocument类PHP帮助我做到这一点,需要找到的东西喜欢在你选择的语言。

使事情更清晰,这里是分层结构对于你的样品:

- 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
    - .

你打25字数限制内部的跨元,所以删除其余所有文本内的跨度,并加省略号。所有其他孩子元件(文本和标签)可丢弃,并随后的所有要素可以被废弃。

这应该永远离开你有效的标记为止我所看到的,因为你都是把它当作一个层次结构,而不只是普通的文本,所有关标签要求将仍然存在。

当然如果XHTML你正在处理无效时开始,不要期望输出是有效的。

对不起对穷人的层次结构的例子,不能作出如何巢清单。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top