web-dev-qa-db-ja.com

PHPでHTMLにXMLを表示する方法は?

XMLの文字列があります。

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

次のように私のウェブサイトに表示したいと思います:

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

だから私はそれをやりたい:

  • テキストボックスではなく、サイト上
  • 外部ライブラリ、フレームワークなどなし.
  • 適切な改行でフォーマットされている
  • タブでフォーマット
  • 色などなし、テキストのみ

それで、単純で簡単な方法でそれを行う方法は?

31

(フォーマット済みの)文字列のプレーンテキスト表現が必要な場合は、HTML _<pre/>_タグでラップし、 htmlentities を使用して山括弧をエスケープできます。 :

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

htmlentities()htmlspecialchars()、または同様の関数を使用できます。

6
Sinan

それはそのように動作するはずです:

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

SimpleXMLobjectの場合

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

わずかに色付けされた出力を持つソリューションを検索しました。

$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";
1
H.Tries