2012-03-06 8 views
2

私はこのような何かをXMLにPHPの配列を変換しています:nullはどこから来ますか?

$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ドキュメントを返すが追加されていると私はそれが私の他の問題の原因となっている何だと思います。だから、のような出力であるXMLの下部に例えば:このNULL値は、私がしなければ、私が見る元の配列から来ている

</ITEM> 
</DATA> 
null 

print_r($bigArray) 

私のようなものを参照してください。

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', 
     ..... 

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

私は次のようにMagentoの中でクラスからこれを呼び出しています

+0

あなたのスクリプトは 'echo $ doc-> saveXML();'の後で終了しますか?私は決して 'saveXML()'を無作為に 'null'で出したことはありません...特にこのスクリプトの終わりである他のエラー –

+0

yesのものはありません。私はMagentoモデルの内部のクラスからこれを実行しています。多分それがファンキーな理由です – Zac

+1

私は、この 'null'が継承階層の上位の別のクラス、つまりテスト/デバッグコードから出力される可能性が高いと思いますあなたはクラス内であなたを拡張しています。 –

答えて

0

Mage_Core_Model_Abstractクラスは、問題を引き起こしているか、または別のクラスを上にして、null値を出力しています。

NetbeansのXdebugを使用してステップインして、null値の原因を調べてください。私は結果を見ることに興味があります。

HTH

+0

ありがとう、はいマルコは、何かより高いものだったはずだと私に言った。これは実際に私がこのモデルを呼び出すコントローラのバグでした。 – Zac

+0

OK、あなたはバグを見つけられてうれしいです! – ShaunOReilly

関連する問題