2010-05-19 27 views
28

tengo una cadena con XML:¿Cómo mostrar XML en HTML en PHP?

$string = 
" 
<shoes> 
    <shoe> 
     <shouename>Shoue</shouename> 
    </shoe> 
</shoes> 
"; 

y nos gustaría mostrarlo en mi sitio como este:

This is XML string content: 
<shoes> 
    <shoe> 
     <shouename>Shoue</shouename> 
    </shoe> 
</shoes> 

así que me gustaría hacerlo:

  • en el sitio , no en el cuadro de texto
  • sin bibliotecas externas, marcos, etc.
  • formato con nuevas líneas adecuadas
  • formateados con pestañas
  • sin colores, etc., sólo el texto

Entonces, ¿cómo lo hacen en forma simple y llanamente?

Respuesta

58

Si lo que desea es una representación de texto sin formato de la cadena (pre-formateada), se puede envolver en HTML <pre/> etiquetas y utilizar htmlentities para escapar de los paréntesis angulares:

<?PHP echo '<pre>', htmlentities($string), '</pre>'; ?>
+0

@ anto.nishanth primer lugar 'echo' es construir un lenguaje por lo que no necesita ser representado como la función. Entonces aquí Chris usa la construcción de parámetros múltiples y usted está hablando de concatenación en un solo parámetro. Por favor, lea la documentación para más detalles http://php.net/echo. – gvgvgvijayan

6

puede usar htmlentities(), htmlspecialchars() o alguna función similar.

6

Se debe trabajar como que:

echo '<p>This is XML string content:</p>' 
echo '<pre>'; 
echo htmlspecialchars($string); 
echo '</pre>'; 
1

Si se trata de un SimpleXMLobject

<pre> 
<?php 
echo htmlspecialchars(print_r($obj,true)); 
?> 
</pre> 
1

I buscado una solución para tener unos resultados ligeramente de color:

$escaped = htmlentities($content); 
$formatted = str_replace('&lt;', '<span style="color:blue">&lt;', $escaped); 
$formatted = str_replace('&gt;', '&gt;</span>', $formatted); 
echo "<pre>$formatted</pre>\n";