【问题标题】:Error on php XML DOMphp XML DOM 上的错误
【发布时间】:2011-01-12 19:00:55
【问题描述】:

我遇到了一个我无法解决的错误。

$unsortedArray = array (array ( 'profileId' => '32', 'profileMiniature' => '32' ,'firstName' => 'Sarmad', 'lastName' => 'Nekomanesh', 'numberOfMutualContacts' => '0' ), array ( 'profileId' => '37', 'profileMiniature' => '37', 'firstName' => 'Sophie', 'lastName' => 'Gronlund', 'numberOfMutualContacts' => '0' ) );

header('Content-type: text/xml');
$xml = new DOMDocument('1.0', 'utf-8');


foreach($unsortedArray as $v){
    $profiles = $xml->createElement('profiles');
    $xml->appendChild($profiles);
    $profile = $xml->createElement('profile');
    $profile->setAttribute('profileId', $v['profileId']);
    $profile->setAttribute('profileMiniature', $v['profileMiniature']);
    $profile->setAttribute('firstName', $v['firstName']);
    $profile->setAttribute('lastName', $v['lastName']);
    $profiles->appendChild($profile);
}


$xml->formatOutput = true;
echo $xml->saveXML();

当我在数组中只有一个数组元素时,我完全没有错误。

【问题讨论】:

  • 此页面包含以下错误:第 5 行第 1 列的错误:文档末尾的额外内容 下面是页面的呈现直到第一个错误。
  • 关于导致此错误的任何线索?

标签: php xml xmldom


【解决方案1】:

我运行了您的代码行(复制和粘贴),没有出现任何错误。它打印了有效的 XML 文档。您可能在其他代码中有错误。

【讨论】:

  • 也许我的 php 版本有些问题。我复制粘贴它,仍然得到错误。
  • 问题可能是:没有根 XML 标记。是的!获取行 $profiles = $xml->createElement('profiles');出foreach圈子。将其放在 foreach 之前。
  • 是的,这是一个非常新手犯的错误:) 我已经这样做了一千次了,从来没有错
【解决方案2】:

你可以试试这个吗:

$xml->formatOutput = false;

echo 命令。看看,有什么错误。

【讨论】:

  • saveXML() 返回 XML 和输出文件。所以,你不能回显它。您必须正确设置输出选项,并且当您使用 saveXML() 时,将 XML 保存到文件中(例如)。
猜你喜欢
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-07
  • 2014-09-17
  • 1970-01-01
相关资源
最近更新 更多