可以解析一个文档,但不能解析另一个文档


Can parse one document, but not another

我有两个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("'", "&apos;", $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

相关文章: