2010-05-19 140 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";