我试图使用simplexml在XML文件中检索字符串。但是字符串包含字符"&"。所以我认为我必须使用CDATA来获取值。我是新手,不知道怎么做。这只是我想要的一个例子。
Example.php
<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<Books>
<Book>
<title> PHP & XML </title>
<author> Some text </author>
<price> Some text </price>
</Book>
<Book>
<title> Java & Coding </title>
<author> Some text </author>
<price> Some text </price>
</Book>
</Books>
XML;
?>
这是我调用的php文件
call.php
<?php
include 'Example.php';
$xml = simplexml_load_string($xmlstr);
$abc = $xml->Book[0]->title[0];
echo $abc;
?>
并且由于字符"&"而给出错误。我不能更改我的XML。可以对call.php进行任何修改对于此事的任何帮助,我将不胜感激。谢谢。
你有一个确切的问题像这样PHP, SimpleXML,解码实体在CDATA
它解释了CDATA在
的情况下可以使用。特殊字符(特别是>、<和&)来逃脱。CDATA包含字符&是否与普通文本节点相同包含,.>
看一下这个
编辑
这是一个解决方案,如果你每次加载你的example.php代码成字符串,那么下面是一个解决方案。
$xmlstr = str_replace("&","&",$xmlstr);
$xml = simplexml_load_string($xmlstr);
$abc = $xml->Book[0]->title[0];
echo $abc;