【发布时间】:2015-07-07 06:25:08
【问题描述】:
我必须在 ajax 中检索 xml,但我无法编写单独的 php 脚本。原因是因为这些数据取决于上下文:库、常量、包含等...所以我发现的唯一方法是像http://xx.xx.xx.xx/myApp?param=U 这样以正常方式调用 url,因此网站加载数据库抽象层、常量...但它也呈现html。我想清除xml部分前后的所有内容。
这是一个架构:
<html>
...constant loading, libraries...
...some html...
ob_end_clean(); //It clears everything before and seems to work (?)
header('Content-type: text/xml');
...xml generation...
...some html ...
</html>
由于 xml 生成后的 html,我遇到了 xml 语法错误。
综上所述,我需要发送 xml 响应,仅此而已。
实现这一目标的最佳方法是什么?我真的走错路了吗?我不是网络初学者,但我也不是专家。
【问题讨论】:
-
省略
<html>和</html>标签,如果脚本生成 XML,则不需要它们。 -
你没有理解我的问题。这不是脚本,这是一个在中间生成 xml 的 html 页面。
-
问题是
ob_end_clean从缓冲区中移除了所有之前的输出,所以<html>标签被移除了。因此,</html>不匹配任何内容。如果您希望 XML 位于 HTML 中间,请不要清除输出缓冲区。 -
你应该有一个特定的视图来渲染 xml,如果你可以改变脚本,也许你可以用一个特殊的参数来处理这个,比如xx.xx.xx.xx/myApp?param=U&type=xml,它只会渲染 xml 部分?
-
我必须渲染 xml 吗?我的意思是它只是得到一些整数。我想我误解了 jquery/ajax 检索 xml 数据的方式。它需要在 html 标记内还是有特定的 xml 协议?或者也许我应该使用 fwrite 生成一个远程 xml 文件?