将XML加载到PHP中-未定义实体“nbsp”

将XML加载到PHP中-未定义实体“nbsp”,php,xml,load,domdocument,Php,Xml,Load,Domdocument,我试图将通过web表单创建的xml文件加载到php页面中。目录是在添加产品时创建的,并为每个产品编写一个XML,该XML稍后将被页面回调 这就是我得到的错误 警告:DOMDocument::load[DOMDocument.load]:第4行的/home/content/41/11699441/html/nc/products/belly dump/234efg/data.xml中未定义实体“nbsp” 以下是XML加载代码: $xmlDoc=新文档; $xmlDoc->load'data.xm

我试图将通过web表单创建的xml文件加载到php页面中。目录是在添加产品时创建的,并为每个产品编写一个XML,该XML稍后将被页面回调

这就是我得到的错误

警告:DOMDocument::load[DOMDocument.load]:第4行的/home/content/41/11699441/html/nc/products/belly dump/234efg/data.xml中未定义实体“nbsp”

以下是XML加载代码:

$xmlDoc=新文档; $xmlDoc->load'data.xml'; XML文件:


$xml->saveXML$target_Path.data.xml'`

您可以使用DomDocument::loadHTML;为了你的问题。该实体不在已知XML实体内。XML中的所有实体都必须是数字实体,但<&>和&apos;除外;。您的XML文件似乎不是有效的XML文件。因此,您可以使用loadHTML方法加载它,该方法对于无效XML几乎没有问题


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

您可以在问题中包含示例XML吗?是的,我们需要查看XML。另外,您尝试过SimpleXMLElement吗?我尝试过SimpleXMLElement、loadHTML、load,但不断出现错误。DOMDocument::load只处理有效的XML。您可以使用$doc->recover=TRUE;将删除未知字符的开关,例如,具有未定义实体名称的字符,如。或者,如果您知道字符串的格式比较好,您可以处理自己的实体,但要注意cdata部分。@Eric Klassen:您能回顾一下您的问题吗?您在其中添加的XML不包含实体。在错误消息的上下文中,这看起来非常错误。请仔细检查并根据需要更正。请原谅我的无知,但我将如何着手修改写作过程。。。我是XML新手,我没有在任何地方使用CDATA,我不知道如何将其放入XML标记中。这可能是问题的一部分吗?使用$xmlDoc->loadHTMLFile'data.xml';我收到以下错误-警告:DOMDocument::loadHTMLFile[DOMDocument.loadHTMLFile]:标记xml在data.xml中无效,第5行的/home/content/41/11699441/html/nc/includes/_xml.php中的第2行
<?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>
$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);