IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[DOM] Supprimer une balise div vide


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Homme Profil pro
    conception et traitement de documents xhtml
    Inscrit en
    Août 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : conception et traitement de documents xhtml
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2011
    Messages : 107
    Points : 80
    Points
    80
    Par défaut [DOM] Supprimer une balise div vide
    Bonjour,

    Après traitement de mon document xhtml, j'obtiens des balises <div> vides (sans noeuds explicites, mais avec des retours chariot, sauts de ligne, espaces)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div class="Document_section">
     
     
     
    </div>
    Comment puis-je supprimer de telles balises div ?
    J'ai essayé d'utiliser le paramètre preserveWhiteSpace = false
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $text_area_xhtml = new DOMDocument();
    $text_area_xhtml -> preserveWhiteSpace = FALSE;
    et de supprimer ces div à l'aide du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $text_area_xpath = new DOMXPath($text_area_xhtml);
    $query = '//div[@class ="Document_section"]';
    $divs = $text_area_xpath -> query($query);
    foreach ($divs as $div)
    {
    	if($div -> hasChildNodes() == false)
    	{
    		$div -> parentNode -> removeChild($div);
    	}
    }
    mais mes div inutiles restent toujours en place.

    Merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    conception et traitement de documents xhtml
    Inscrit en
    Août 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : conception et traitement de documents xhtml
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2011
    Messages : 107
    Points : 80
    Points
    80
    Par défaut
    Ça me dérangeait de voir une question non encore résolue dans ma liste de [Résolu].

    Voici donc le code permettant de supprimer une div vide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    $divs = $doc_xpath -> query('//div');
     
    foreach ($divs as $div)
    {
    	$div_vide = true;
    	foreach($div -> childNodes as $node)
    	{
    		if(preg_match('#\w#', $node -> nodeValue))
    		{
    			$div_vide = false;
    			break;
    		}
    	}
     
    	if($div_vide == true)
    		{$div -> parentNode -> removeChild($div);}
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOM] Placer une balise div vide
    Par Doc_xhtml dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 12/12/2011, 18h05
  2. [DOM] Comment supprimer une balise <div> en conservant le contenu ?
    Par Doc_xhtml dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 25/10/2011, 00h05
  3. [DOM] Comment supprimer une balise <script> ?
    Par cassy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/10/2006, 11h24
  4. Taille d'une balise <div>
    Par Landru dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/11/2005, 08h43
  5. hauteur d une balise div en fonction de la résolution
    Par echecetmat dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/01/2005, 10h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo