如何在PHP中用HTML显示XML?

时间:2010-05-19 09:36:36

标签: php html xml

我有一个XML字符串:

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

并希望在我的网站上显示如下:

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

所以我想这样做:

  • 在网站上,而不是在文本框中
  • 没有外部库,框架等。
  • 使用适当的新行格式化
  • 使用标签格式
  • 没有颜色等,只有文字

那么如何以简单明了的方式做到这一点?

5 个答案:

答案 0 :(得分:61)

如果您只想要(预格式化)字符串的纯文本表示,可以将其包装在HTML <pre/>标记中,并使用htmlentities来转义尖括号:

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

答案 1 :(得分:6)

您可以使用htmlentities()htmlspecialchars()或类似的功能。

答案 2 :(得分:6)

应该这样工作:

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

答案 3 :(得分:1)

如果是SimpleXML对象

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

答案 4 :(得分:1)

我搜索了一个稍微有色输出的解决方案:

$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";