我正在尝试使用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;
?>
由于字符“&amp;”而出现错误。我不能改变我的XML。可以对call.php进行任何修改 任何有关此事的帮助都将非常感激。 感谢名单。
答案 0 :(得分:0)
您有一个类似于此问题的确切问题{{3}}
它解释了可以在
的情况下使用的CDATA要转义的特殊字符(特别是&gt;,&lt;和&amp;)。一个CDATA 包含字符和部分的部分与普通文本节点相同 包含&amp;。
看看这个。
修改强>
如果每次将example.php代码加载到字符串中,则下面是一个解决方案,这是一个解决方案。
$xmlstr = str_replace("&","&",$xmlstr);
$xml = simplexml_load_string($xmlstr);
$abc = $xml->Book[0]->title[0];
echo $abc;