如何在 PHP 中以 HTML 格式显示 XML?

Posted

技术标签:

【中文标题】如何在 PHP 中以 HTML 格式显示 XML?【英文标题】:How to display XML in HTML in PHP? 【发布时间】:2011-02-21 07:12:33 【问题描述】:

我有一个带有 XML 的字符串:

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

并希望像这样在我的网站上显示它:

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

所以我想这样做:

在网站上,不在文本框中 无需外部库、框架等。 用适当的新行格式化 使用制表符格式化 没有颜色等,只有文字

那么如何简单明了地做到呢?

【问题讨论】:

【参考方案1】:

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

&lt;?php echo '&lt;pre&gt;', htmlentities($string), '&lt;/pre&gt;'; ?&gt;

【讨论】:

@anto.nishanth 首先echo 是一种语言结构,因此不需要将其表示为函数。然后在这里 Chris 使用多个参数构造,您正在谈论连接到单个参数。请阅读文档以获取更多详细信息php.net/echo。【参考方案2】:

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

【讨论】:

【参考方案3】:

它应该是这样工作的:

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

【讨论】:

【参考方案4】:

如果是 SimpleXMLobject

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

【讨论】:

【参考方案5】:

我搜索了一种解决方案,使输出略带颜色:

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

【讨论】:

以上是关于如何在 PHP 中以 HTML 格式显示 XML?的主要内容,如果未能解决你的问题,请参考以下文章

PHP - 如何在HTML中格式化显示JSON数据

c#:显示程序中以XML格式定义的动态菜单

如何在 html 页面中以适当的格式显示 CPP、Java 或任何其他编程语言代码? [关闭]

如何在 PHP 中以不同方式显示静态文本和动态文本(由变量生成)?

如何在 WSO2 中以 XML 格式转换 JSON 消息

json 在VS Code中以HTML格式展开PHP条件。