【问题标题】:convert associate array to XML in php在php中将关联数组转换为XML
【发布时间】:2010-12-04 07:35:04
【问题描述】:

如何将关联数组转换为 XML 字符串?我found this 但在运行该行时收到错误“调用非对象上的成员函数 addChild()”

$node = $xml->addChild($key);

【问题讨论】:

  • 您能否提供代码,包括您对所提供的ArrayToXML::toXML() 的调用?

标签: php xml associative-array


【解决方案1】:

使用 PHP Document Object Model:

$xml = new DOMDocument('1.0', 'utf-8');
$root = $xml->createElement('top');
$xml->appendChild($root);
foreach ($arr as $k => $v) {
  $node = $xml->createelement($k);
  $text = $xml->createTextNode($v);
  $node->appendChild($text);
  $root->appendChild($node);
}
echo $xml->saveXml();

【讨论】:

    【解决方案2】:

    如果您想要一个简单的解决方案,PEAR 的 XML_Serialize 非常好。手动执行 DOM 可以说更快。

    【讨论】:

      【解决方案3】:

      这与您执行以下操作的方式非常相似:

      while($row = mysql_fetch_assoc($result))
      

      您不能将 $result 用作数组,但您可以通过不同的条目使用 foreach 或 while。

      【讨论】:

        【解决方案4】:

        您是否初始化了 $xml 对象?这可能是你的问题。

        【讨论】:

        • 怎么样?当我看到 =null 时,我认为它不是必需的
        • 它说你正在调用一个非对象。这意味着该对象不存在。如果是null,怎么会有方法?
        猜你喜欢
        • 2011-09-25
        • 1970-01-01
        • 2011-05-08
        • 1970-01-01
        • 2011-05-19
        • 1970-01-01
        相关资源
        最近更新 更多