我试图用simplexml_load_string加载一些xml文件,但是如果在我使用双引号的属性中我有问题...事情是我(想)我之前用双引号和工作做过很好,所以我不知道/理解为什么会失败。这是我试图加载的xml:
<?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: " 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 :(得分: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>