2010-05-19 138 views
28

我有一个XML字符串:如何在PHP中以HTML格式显示XML?

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

,并想在我的网站是这样显示的:

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

所以我想做到这一点:

  • 现场,不在文本框中
  • 没有外部库,框架等
  • 格式化适当的新生产线
  • 与标签格式
  • 没有颜色等,纯文本

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

回答

58

如果你只是想你(预格式化)字符串的纯文本表示,可以在HTML <pre/>标签包裹再用htmlentities逃离尖括号:

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

@ anto.nishanth首先'echo'是一个语言结构,因此不需要表示为函数。然后在这里,Chris使用多个参数构造,并且您正在讨论串联到单个参数中。请阅读文档http://php.net/echo。 – gvgvgvijayan 2015-12-28 09:02:26

6

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

6

它应该像即:

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

如果是SimpleXMLobject

<pre> 
<?php 
echo htmlspecialchars(print_r($obj,true)); 
?> 
</pre> 
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";