【发布时间】:2011-08-23 17:58:57
【问题描述】:
这让我发疯了,网上有很多类似的问题,但我找不到正确的解决方案。
我在 php 中创建一个 xml 文档,作为对 ajax 请求的响应发送。响应将如下所示:
<?xml version="1.0" encoding="iso-8859-1"?>
<response>
<status>success</status>
<message> —</message>
</response>
标签将包含比这更有意义的信息,但正是这些实体给我带来了问题。
生成该xml的php代码如下:
header("Content-Type: text/xml");
$dom = new DOMDocument('1.0', 'iso-8859-1');
$dom->formatOutput = true;
$response_node = $dom->createElement("response");
$dom->appendChild($response_node);
$response_node->appendChild($dom->createElement('status', 'success'));
$response_node->appendChild($dom->createElement('message', " &mdash"));
echo $dom->saveXML();
return;
上面显示的 xml 成功返回给调用的 javascript 函数,但是当它尝试解析 xml 文档时,它失败了。
如果我尝试使用 this validator 验证 xml,我会收到以下错误:
此页面包含以下错误:
第 5 行第 15 列的错误:未定义实体“nbsp”
实体&mdash; 会导致同样的问题。
我想我可能需要找到一种方法将这样的内容放入 xml:
<!ENTITY name "entity_value">
我不知道该怎么做,或者这是否是正确的方法。我不是正确的轨道吗?如果是这样,我该怎么做?如果不是,解决这个问题的正确方法是什么?
【问题讨论】: