0

我正在尝试使用 simplexml 检索 XML 文件中的字符串。但该字符串包含字符“&”。所以我想我必须使用 CDATA 来获得价值。我对此真的很陌生,不知道该怎么做。这只是我想要的一个例子。

例子.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 文件

调用.php

<?php
  include 'Example.php';

  $xml = simplexml_load_string($xmlstr);
  $abc = $xml->Book[0]->title[0];
  echo $abc;
?>

由于字符“&”,它给出了一个错误。我无法更改我的 XML。可以对 call.php 进行任何修改 任何有关此事的帮助将不胜感激。谢谢。

4

1 回答 1

0

你有一个像这样的确切问题 SO PHP,SimpleXML,解码 CDATA 中的实体

它解释了可以在以下情况下使用的 CDATA

要转义的特殊字符(特别是 >、< 和 &)。包含字符 & 的 CDATA 部分与包含 & 的普通文本节点相同。

看看这个。

编辑

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

  $xmlstr = str_replace("&","&amp;",$xmlstr);
  $xml = simplexml_load_string($xmlstr);
  $abc = $xml->Book[0]->title[0];
  echo $abc;
于 2013-05-14T05:41:08.797 回答