2008-08-29 3 views
1

どのようにprogrammacially閉じられていないか、または破損タグを離れることなく、単語の任意の数にXHTMLを省略でしょうか? 25のワードと略称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> 

次のようになります。DOMツリーを

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

答えて

1

再帰、最新の単語カウント変数を維持します。単語数が最大単語数を超えたら、「...」を挿入して現在のノードの次の兄弟をすべて削除し、再帰を経てバックアップするときに、その祖先それぞれの次の兄弟をすべて削除します。

1

あなたは要素の階層として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ワードの限界を打つので、あなたは、スパン内のすべての残りのテキストを削除し、省略記号を追加します。他のすべての子要素(テキストとタグの両方)は破棄することができ、後続の要素はすべて破棄することができます。

これは、常にあなたが階層だけでなく、プレーンテキストとしてそれを扱っているので、必要とされるすべての終了タグがまだあるだろう、私の知る限り、有効なマークアップを残す必要があります。もちろん

あなたが扱っているXHTMLはそもそも無効である場合、出力が有効であることを期待しないでください。

貧しい階層例えば申し訳ありませんが、巣リストにどのようにうまくいきませんでした。

関連する問題