使用simplexml add CDATA在XML文件中获取特殊字符

时间:2013-05-14 05:29:36

标签: php xml simplexml cdata

我正在尝试使用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进行任何修改 任何有关此事的帮助都将非常感激。 感谢名单。

1 个答案:

答案 0 :(得分:0)

您有一个类似于此问题的确切问题{​​{3}}

它解释了可以在

的情况下使用的CDATA
  

要转义的特殊字符(特别是&gt;,&lt;和&amp;)。一个CDATA   包含字符和部分的部分与普通文本节点相同   包含&amp;。

看看这个。

修改

如果每次将example.php代码加载到字符串中,则下面是一个解决方案,这是一个解决方案。

  $xmlstr = str_replace("&","&amp;",$xmlstr);
  $xml = simplexml_load_string($xmlstr);
  $abc = $xml->Book[0]->title[0];
  echo $abc;