将XML加载到PHP中 - 实体' nbsp'没有定义的

时间:2013-09-16 19:01:41

标签: php xml load domdocument

我正在尝试将xml文件(通过Web表单创建的)加载到php页面中。这些目录是在添加产品和为每个产品编写的XML时创建的,稍后将由页面回调。

这是我得到的错误。

  

警告:DOMDocument :: load()[domdocument.load]:实体'nbsp'未在/home/content/41/11699441/html/nc/products/belly-dump/234efg/data.xml中定义,行:第4行/home/content/41/11699441/html/nc/includes/_xml.php中的4个

这是XML加载代码:

  1. $ xmlDoc = new DOMDocument();
  2. $ xmlDoc->负载( 'data.xml中');
  3. XML文件:

    <?xml version="1.0"?>
    <xml>
    <model>
        <type>Gravel Box</type>
        <titleXML>345FGH - Tridem Clamshell</titleXML>
        <features>here are features</features>
        <options>here are options</options>
        <gallery>my photo gallery directory</gallery>
        <info>additional information</info>
    </model>
    </xml>
    

    编写XML文档的PHP代码

    `$ xml = new SimpleXMLElement('');

    $model = $xml->addChild('model');
    $model->addChild('type', $type);
    $model->addChild('titleXML', $titleXML);
    $model->addChild('features', $feature);
    $model->addChild('options', $option);
    $model->addChild('gallery', $gallery);
    $model->addChild('info', $info);
    

    $ XML-&GT; saveXML($ target_Path.'data.xml');`

1 个答案:

答案 0 :(得分:0)

您可以使用DomDocument :: loadHTML();为你的问题。该实体不在已知的XML实体中。 XML中的所有实体必须是数字实体,除了&lt; &安培; “&gt;和'。您的XML文件似乎不是一个有效的XML文件。因此您可以使用loadHTML方法加载它,这对于无效的XML几乎没有问题。

最好的解决方案是data.xml文件有效。所以,如果可以的话,只需修改编写过程而不是修复阅读过程。