我正在使用如下所示的代码对网站进行api调用:
$xmlData = file_get_contents("http://isbndb.com/api/books.xml?access_key=XXXXXX&index1=isbn&value1=0596002068");
echo $xmlData;
但是,在浏览器上显示的xmlData会自动解析为HTML。对于例如返回的XML(实际上是书名)的元素<title>
被转换为HTML,基本上成为页面标题,其他XML元素显示为没有标签的纯文本。我希望客户端XMLHttpRequest
对象从服务器端获取原始XML数据。
为什么会发生这种情况?如何确保不自动解析XML?
答案 0 :(得分:4)
PHP只是将其视为文本。例如,执行echo "<b>Bold</b>";
,它将“自动”以粗体显示。它是处理HTML并呈现它的浏览器。
这是htmlspecialchars
的用途。
答案 1 :(得分:1)
这与php无关。你吐出浏览器解释为HTML的元素(这就是它设置标题的原因)。正确构建您的html页面,在您的内容周围使用<pre>
标记,或。在需要时,使用正确的内容类型标题发送您的内容(例如text/plain
以显示您的xml以供查看,或text/xml
用于其他目的),因此它不会将您的数据解析为html。