1

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

这是我得到的错误。

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

这是 XML 加载代码:

  1. $xmlDoc = 新的 DOMDocument();
  2. $xmlDoc->load('data.xml');

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->saveXML($target_Path.'data.xml');`

4

1 回答 1

0

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

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

于 2013-09-16T19:11:10.433 回答