2008-08-29 33 views
1

Kapanmamış veya bozuk etiketler bırakmadan, XHTML'u rasgele bir şekilde sözcükleri kısaca nasıl programlayabilirdiniz?XHTML’yi keyfi bir sayıya nasıl ayırabilirdiniz?

yani

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

olurdu 25 kelime Kısa: DOM ağacında

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

cevap

1

Recurse, güncel bir kelime sayısı değişkeni tutmak. Sözcük sayımı maksimum sözcük sayınızı geçtiğinde, "..." ifadesini ekleyin ve geçerli düğümün aşağıdaki tüm kardeşlerini kaldırın, ardından, özyineleme boyunca geri giderken, atalarının her birinin aşağıdaki kardeşlerini kaldırın.

1

XHTML öğelerini bir hiyerarşi olarak düşünmeniz ve bu şekilde davranmanız gerekir. Bu temelde XML'in tedavi edilmesinin anlamıdır. Ardından, sıralı olarak hiyerarşiyi gözden geçirin ve gittikçe birlikte sözcük sayısını toplayın. Limitine vurduğunda, her şeyi bir kenara at.

Temel olarak PHP'de çalışıyorum ve PHP'de DOMDocument sınıfını kullanmam için bana yardım etmelisiniz, seçtiğiniz dilde bir şeyler bulmanız gerekiyor. Eğer span içinde kalan tüm metni kaldırmak ve üç nokta eklemek böylece

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

Sen yayılma elemanı içindeki 25 kelime sınırına ulaşmadan,:

buradan numune için hiyerarşi, işler daha net hale getirmek. Diğer tüm alt öğeler (hem metin hem de etiketler) atılabilir ve sonraki tüm öğeler atılabilir.

Bu, görebildiğim kadarıyla her zaman geçerli bir işaret bırakmalı, çünkü yalnızca düz metin değil hiyerarşi olarak davranıyorsunuz, gerekli olan tüm kapatma etiketleri hala var olacaktır.

Elbette başa çıkmaya çalıştığınız XHTML geçersizse, çıktının geçerli olmasını beklemeyin.

Fakir hiyerarşi örneği için özür dilerim, listelerin nasıl yuvalanacağı konusunda çalışmadım.