Buenas, tengo un pequeño problema, resulta que estoy trabajando con SimpleXML para procesar paginas html de forma dinamica en el servidor y cuando quite lo que no se quiere mostrar recien el cliente vea el resultado.
Pero el resultado esta lleno de saltos de linea que yo no inclui:
Código PHP:
Ver originalfunction pageProcess($xml){
if(($xml['account']!='LhaN' && $xml['rol']!='Admin')){ //Aca debe comprobar si hay permisos para ver el elemento
if($xml->getName()!='root'){ //Esto solo sirve para comprobar que no agregue el root
echo '<'.$xml->getName();
foreach($xml->attributes() as $att => $valor) {
echo ' '.$att.'="'.$valor.'"';
}
echo '>'.$xml;
$children=$xml->children();
if($children!=null)
foreach($children as $child)
$this->pageProcess($child);
echo '</'.$xml->getName().'>';
}else{
$children=$xml->children();
if($children!=null)
foreach($children as $child)
$this->pageProcess($child);
}
}
}
Esa es la funcion que filtra los elementos que no se deben ver.
Aca el segmento de codigo donde se utiliza la funcion y se da el resultado al cliente.
Código PHP:
Ver original//Se procesa y se muestra la pagina en el cliente
echo $this->doctype;
$this->pageProcess($this->paginaXml);
echo $pagina;
Lo siguiente es lo que me muestra el codigo html en el browser:
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html>
<h1>Bienvenido!
</h1><b><p>Esta es la pagina por defecto.
</p></b><div>
<b>Esto esta en el archivo testdiv.php.
</b><div>
Y solo para verificacion, aca esta el contenido, tal cual lo muestra el browser, del xml:
Código XML:
Ver original<?xml version="1.0"?>
<root>
<html>
<head>
<title>Basys v0.2</title>
</head>
<link rel="stylesheet" href="style/default.css" type="text/css"/>
<body>
<h1>Bienvenido!</h1>
<b><p>Esta es la pagina por defecto.</p></b>
<p account="LhaN">Esto no deberia verse</p>
<div>
<b>Esto esta en el archivo testdiv.php.</b>
<div>
<b rol="Admin">Esto esta en el archivo testdiv2.php y no deveria verse.</b>
</div></div> </body>
</html></root>
De hecho cuando copio y pego lo que el browser me muestra aca, en relacion al xml, aparecen algunos saltos de linea no se por que.
Código XML:
Ver original<?xml version="1.0"?>
<root>
<html>
<head>
<title>Basys v0.2</title>
</head>
<link rel="stylesheet" href="style/default.css" type="text/css"/>
<body>
<h1>Bienvenido!</h1>
<b><p>Esta es la pagina por defecto.</p></b>
<p account="LhaN">Esto no deberia verse</p>
<div>
<b>Esto esta en el archivo testdiv.php.</b>
<div>
<b rol="Admin">Esto esta en el archivo testdiv2.php y no deveria verse.</b>
</div></div> </body>
</html></root>
Que es lo que esta produciendo esos saltos de linea? Y cual es la mejor manera para quitarlos? La pagina no tiene mucho contenido, por que recien estoy desarrollando el tema de la seguridad, pero cuando la pagina tenga mas contenido me preocupa que eso saltos de linea, que al fin y al cabo son caracteres, me aumenten considerablemente el tamaño del html que recibe el cliente afectando la navegacion en conexiones lentas. Pero tampoco quiero que el servidor se sobre cargue quitando estos saltos de linea.
Un saludo.