【问题标题】:Where is null coming from in this array?这个数组中的 null 来自哪里?
【发布时间】:2012-03-06 21:38:36
【问题描述】:

我正在将一个 php 数组转换为 xml,如下所示:

$bigArray = $readConnection->fetchAll($query);

  $doc = new DOMDocument();
  $doc->formatOutput = true;       
  $r = $doc->createElement( "DATA" );
  $doc->appendChild( $r );     
  foreach( $bigArray as $product )
  {
    $b = $doc->createElement( "ITEM" );        
    $product_type = $doc->createElement( "PRODUCT_TYPE" );
    $product_type->appendChild(
    $doc->createTextNode( $product['ProductType'] )
    );
    $b->appendChild( $product_type ); 
    $sku = $doc->createElement( "SKU" );
    $sku->appendChild(
    $doc->createTextNode( $product['SKU'] )
    );
    $b->appendChild( $sku ); 
    $r->appendChild( $b );
   }

  echo $doc->saveXML();

这会返回一个 xml 文档,但最后会附加 null,我认为这是导致我出现其他问题的原因。因此,例如在输出的 xml 的底部,它看起来像:

  </ITEM>
</DATA>
null

这个空值来自原始数组,我看看是否这样做:

print_r($bigArray)

我看到类似:

Array ( [0] => Array ( [ProductType] => simple [SKU] => 09423100010018 ) [1] => Array ( [ProductType] => simple [SKU] => 14552300010002 )) null

我是从 magento 的一个类中调用它的:

class Foo_Model_Queryone extends Mage_Core_Model_Abstract
{

    public function pprQuery() {
    $resource = Mage::getSingleton('core/resource');    
    $readConnection = $resource->getConnection('core_read');    
    $query = ("SELECT cpe.type_id AS 'ProductType',
      cpe.sku AS 'SKU',
      .....

【问题讨论】:

  • 您的脚本是否在echo $doc-&gt;saveXML(); 之后结束?我从来没有通过null随机获得saveXML()...尤其是没有其他错误
  • 是的,那是该脚本的结尾。我是从 Magento 模型内部的一个类中运行它的。也许这就是它很时髦的原因
  • 我认为这个null 更有可能是由继承层次结构中更高的另一个类输出的,即来自您正在扩展的类中的测试/调试代码。
  • 啊,是的,谢谢马可。你是完全正确的,我没想到那里看。我得到了如果修复..你可以回答或者我会删除这个作为一种糟糕的问题。

标签: php xml magento


【解决方案1】:

Mage_Core_Model_Abstract 类或更高级别的另一个类导致了问题,即输出空值。

尝试在 Netbeans 中使用 Xdebug 单步调试,看看是什么导致了 null 值。我有兴趣看到结果。

HTH

【讨论】:

  • 谢谢,是的,Marco 告诉我它一定是更高层的东西。这实际上是我从中调用此模型的控制器中的一个错误。
  • 好的,很高兴你发现了这个错误!
猜你喜欢
  • 2020-10-15
  • 2017-06-04
  • 2021-11-14
  • 1970-01-01
  • 2020-12-26
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
  • 2010-09-27
相关资源
最近更新 更多