使用SimpleXML和CDATA
我想中检索使用SimpleXML在XML文件中的字符串获取一个XML文件中的特殊人物造型。但是该字符串包含字符“&”。所以我认为我必须使用CDATA来获得价值。我对此非常陌生,不知道如何去做。 这只是我想要的一个例子。使用SimpleXML和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。任何修改都可以通过呼叫.php 任何有关此事的帮助将不胜感激。 Thanx。
你有这样的SO PHP, SimpleXML, decoding entities in CDATA
它有大约CDATA解释,可在
特殊字符情况下使用(特别是>,<和&)进行转义一个确切的问题。包含字符&甲CDATA 部分是相同的含&普通文本节点 。
对此看看。
编辑
这里是一个解决方案,如果您在使用example.php代码加载每次转换为字符串,然后下面是一个解决方案。
$xmlstr = str_replace("&","&",$xmlstr);
$xml = simplexml_load_string($xmlstr);
$abc = $xml->Book[0]->title[0];
echo $abc;
是的,我知道如何使用CDATA一个XML
任何更改查看更新的代码:) – NullPointer 2013-05-14 06:17:03
是的,它是working.Thank你这么多。 :) – gecco 2013-05-14 06:19:14
那么,XML在技术上是无效的。你*应该*和*需要*来改变它。 – deceze 2013-05-14 05:42:52
对不起。你能告诉我我的XML的哪一部分是无效的吗? – gecco 2013-05-14 05:46:22
'&'。不裸'&'允许在裸文本节点,它是* *需要将''&。 – deceze 2013-05-14 06:01:20