2016-08-12 107 views
1

我试图加载一些xml文件与simplexml_load_string但即时通讯有问题这样做,如果在属性我使用双引号......事情是,我(想)我做到了这一点之前用双引号工作正常,所以我不知道/明白为什么失败。这是XML我尝试加载:PHP simplexml_load_string()麻烦双引号

<?xml version="1.0" encoding="UTF-8"?> 
<order> 
    <products> 
     <product title=”Rimmel Lasting Finish Lipstick 4g” price=”4.99”> 
      <category>Lipstick</category> 
     </product> 
     <product title=”Sebamed Anti-Dandruff Shampoo 200ml” price=”4.99”> 
      <category>Shampoo</category> 
     </product> 
    </products> 
    <total>9.98</total> 
</order> 

我得到的错误是: PHP Warning: simplexml_load_string(): Entity: line 4: parser error : AttValue: &quot; or ' expected in Orders.php on line 42

则错误继续(如果有任何需要我会后)。 PHP的是:

$getXmlString = file_get_contents("../xmls/order_x.xml"); 
$orderLoaded = simplexml_load_string($getXmlString); 
echo 'xml: '.$orderLoaded; 

这不打印,因为解析器错误的东西... 任何线索?

+0

上的事情,我忘了说的是,如果我取代了单引号双引号它的工作原理...我只是好奇,为什么它不与双打(和什么是最简单的方法来取代它们?) –

+1

那些不是双引号,他们是“聪明的引号”。您是否从某处复制/粘贴XML文件? – Phylogenesis

+0

XDDDDDD我知道答案会揭示我是多么愚蠢!你是对的@植物发生,这是错误的:P –

回答

2

这是因为你的XML使用智能引号,而不是双qoutes

<?xml version="1.0" encoding="UTF-8"?> 
<order> 
    <products> 
     <product title=”Rimmel Lasting Finish Lipstick 4g” price=”4.99”> 
      <category>Lipstick</category> 
     </product> 
     <product title=”Sebamed Anti-Dandruff Shampoo 200ml” price=”4.99”> 
      <category>Shampoo</category> 
     </product> 
    </products> 
    <total>9.98</total> 
</order> 

应该

<?xml version="1.0" encoding="UTF-8"?> 
<order> 
    <products> 
     <product title="Rimmel Lasting Finish Lipstick 4g" price="4.99"> 
      <category>Lipstick</category> 
     </product> 
     <product title="Sebamed Anti-Dandruff Shampoo 200ml" price="4.99"> 
      <category>Shampoo</category> 
     </product> 
    </products> 
    <total>9.98</total> 
</order>