0

我有两个 XML 文档,格式如下:

<?xml version="1.0" ?>
<article>
  <body>
    <![CDATA[
      *some text*
    ]]>
  </body>
</article>

我想用这个来回应他们:

<?php
  $xml = simplexml_load_file("." . $filename); 
  echo $xml->body;
?>

但其中一个有效,另一个只是没有回应。到底是怎么回事?

更新:产生错误的文档包含这个撇号:'当这个撇号被删除时,代码可以工作。我需要某种方式来转义这样的字符,我该怎么做?

4

2 回答 2

0

只需回asXML()显,您可能会看到第二个文件的错误。

echo $xml->asXML();

这是关于 SimpleXML 的简单教程:http: //php.net/manual/en/simplexml.examples-basic.php

于 2013-06-09T23:08:05.650 回答
0

省略你的撇号:

<?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

于 2013-06-10T01:17:41.597 回答