(PHP 5, PHP 7, PHP 8)
tidyNode::isHtml — Indica si el nodo es un nodo de elemento
Indica si el nodo actual es un nodo de elemento, pero no el nodo raíz del documento.
Esta función no tiene parámetros.
Retorna true
si el nodo es un nodo de elemento, pero no el nodo raíz
del documento, false
de lo contrario.
Versión | Descripción |
---|---|
7.3.24, 7.4.12 | Esta función fue corregida para tener un comportamiento razonable. Anteriormente, la mayoría de los nodos eran reportados como nodos HTML. |
Ejemplo #1 Extracto del código HTML desde un documento mixto
<?php
$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
/* código JSTE */
alert('Hello World');
#>
</head>
<body>
<?php
// código PHP
echo 'hello world!';
?>
<%
/* código ASP */
response.write("Hello World!")
%>
<!-- Comentarios -->
Hello World
</body></html>
Fuera de HTML
HTML;
$tidy = tidy_parse_string($html);
$num = 0;
get_nodes($tidy->html());
function get_nodes($node) {
// Verifica si el nodo actual es del tipo demandado
if($node->{isHtml()) {
echo "\n\n# Nodo Html #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}
// Verifica si el nodo actual tiene hijos
if($node->hasChildren()) {
foreach($node->child as $child) {
get_nodes($child);
}
}
}
?>
El resultado del ejemplo sería:
# Nodo html #1 <html> <head> <?php echo '<title>title</title>'; ?><# /* código JSTE */ alert('Hello World'); #> <title></title> </head> <body> <?php // código PHP echo 'hello world!'; ?><% /* código ASP */ response.write("Hello World!") %><!-- Comentarios --> Hello WorldFuera de HTML </body> </html> # Nodo html #2 <head> <?php echo '<title>title</title>'; ?><# /* código JSTE */ alert('Hello World'); #> <title></title> </head> # Nodo html #3 <title></title> # Nodo html #4 <body> <?php // código PHP echo 'hello world!'; ?><% /* código ASP */ response.write("Hello World!") %><!-- Comentarios --> Hello WorldFuera de HTML </body>