不能用SimpleXML解析CDATA(Cannot parse CDATA with Simple

2019-09-19 15:19发布

我有以下XML代码:

<para>
      <![CDATA[
        <?php
        $data = '<?xml version="1.0"?>
        <root>content</root>';
        $sxe = simplexml_load_string($data);
        var_dump($sxe);
        ?>
      ]]>
    </para>

我想解析CDATA部分采取这样的结果:

Content:
<?php
$data = '<?xml version="1.0"?>
<root>content</root>';
$sxe = simplexml_load_string($data);
var_dump($sxe);
?>

我用下面的,但它不工作。

$xml='sxml.xml';
$book = simplexml_load_file($xml, 'SimpleXMLElement', LIBXML_NOCDATA);

$para = $book->chapter->para[1];
print "Content: ".$para."<br>";

foreach($para AS $node) {
    print "Iter Content: ".$node."<br>";    
}

这导致:

Content: 


        content';
        $sxe = simplexml_load_string($data);
        var_dump($sxe);
        ?>

在phpinfo()函数它表明libxml的启用和有效。 任何帮助吗? 提前致谢

Answer 1:

你应该使用编码特殊字符用htmlspecialchars

例如: print "Content: ".htmlspecialchars($para)."<br>";



文章来源: Cannot parse CDATA with SimpleXML