snippet html # 1 strong> HTML Snippet # 2 strong> p> $doc->preserveWhiteSpace = false;
3 Réponses :
WhitSpace est considéré comme un nœud car il s'agit d'un nœud () em> ( Vous pouvez faire ce travail en modifiant votre domtext code>). pour " / Code> Boucle: P> foreach ($divs as $div) {
echo $div->childNodes->length - $xpath->query('./text()', $div)->length, '<br>';
}
Firefox, chrome et la plupart des autres navigateurs, traiteront des espaces blancs vides ou de nouvelles lignes sous forme de nœuds de texte, Internet Explorer ne sera pas.Checker ici p>
Intéressant, je n'étais pas au courant de ça. Jusqu'à une heure il y a une heure, je pensais que Whitaespace était juste des espaces ...
Il suffit de compter les nœuds non-texte dans votre boucle:
$textNodes = $xpath->query('//text()');
foreach($textNodes as $node)
if(trim($node->wholeText) === '')
$node->parentNode->removeChild($node);
Belle solution de contournement! Mais y a-t-il un moyen de supprimer tous les espaces?
réglage préserverwhiteespace code> à FALSE devrait faire cela, mais il semble que ce n'est pas toujours fiable
Le HTML est-il valide? Notez que vous devez mettre cette ligne avant -> loadhtml code>
Le HTML est comme dans ma question. J'ai préservewhitepace = false code> avant loadhtml code>, ne fonctionne pas cependant. J'aime cette solution de contournement XPath.
Si vous exécutez sur Windows, peut-être qu'elle est liée à ce bogue ?
Laissez-nous Continuer cette discussion en chat
Ce n'est pas récursif
Ceci est une question de type forum. Donc, ce n'est pas un forum, vous n'êtes pas nouveau ici, vous devriez savoir ...
@Dainisabols: de la FAQ: (...) Si votre question couvre généralement un problème de programmation spécifique, un algorithme logiciel, des outils logiciels couramment utilisés par les programmeurs, des problèmes pratiques et responsables propres à la profession de programmation - alors vous êtes dans votre Le bon endroit pour poser votre question! En ce sens, ma question se qualifie. Sortez ça vote.