我有两个XML文档,格式都是这样的:
<?xml version="1.0" ?>
<article>
<body>
<![CDATA[
*some text*
]]>
</body>
</article>
,我想用这个回显它们
<?php
$xml = simplexml_load_file("." . $filename);
echo $xml->body;
?>
但其中一个工作,另一个只是没有回声。发生了什么事?
更新:产生错误的文档包含以下撇号:去掉这个撇号后,代码就可以工作了。我需要一些转义字符的方法,我该怎么做呢?
只是回显asXML()
,您可能会看到第二个文件的错误。
echo $xml->asXML();
下面是一个简单的SimpleXML教程:http://php.net/manual/en/simplexml.examples-basic.php
空白引号:
<?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