我有两个XML文档,格式如下:
<?xml version="1.0" ?>
<article>
<body>
<![CDATA[
*some text*
]]>
</body>
</article>
我希望用它来回应它们:
<?php
$xml = simplexml_load_file("." . $filename);
echo $xml->body;
?>
但是其中一个有效,另一个只有回声。发生了什么事?
更新: 产生错误的文档包含这个appostrophe:' 当删除此撇号时,代码可以正常工作。我需要一些方法来逃避这样的角色,我该怎么办呢?
答案 0 :(得分:0)
只需回显asXML()
,您可能会在第二个文件中看到错误。
echo $xml->asXML();
以下是SimpleXML的简单教程:http://php.net/manual/en/simplexml.examples-basic.php
答案 1 :(得分:0)
Espace your appostrophe:
<?php
$text = file_get_contents("." . $filename);
$text = str_replace("'", "'", $text);
$xml = simplexml_load_string($text);
echo $xml->body;
?>
此外,有人有类似的问题(没有崩溃,但垃圾字符),并提出了相同的解决方案。稍后在该论坛帖子中他们推测utf8_encode和utf8_decode,您也可以尝试。链接:http://board.phpbuilder.com/showthread.php?10359181-RESOLVED-SimpleXML-apostrophe-problem&p=10886946&viewfull=1#post10886946