How to display XML in HTML in PHP?

71,810

Solution 1

If you just want a plain-text representation of your (pre-formatted) string, you can wrap it in HTML <pre/> tags and use htmlentities to escape the angle brackets:

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

Solution 2

you can use htmlentities(), htmlspecialchars() or some similar function.

Solution 3

It should work like that:

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

Solution 4

If it is a SimpleXMLobject

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

Solution 5

I searched for a solution to have slightly coloured output:

$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";
Share:
71,810
Tom Smykowski
Author by

Tom Smykowski

Updated on March 01, 2020

Comments

  • Tom Smykowski
    Tom Smykowski over 4 years

    I have a string with XML:

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

    And would like display it on my website like this:

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

    So I would like to do it:

    • on site, not in textbox
    • without external libraries, frameworks etc.
    • formatted with proper new lines
    • formatted with tabs
    • without colors etc., only text

    So how to do it in plain and simple way?