XMLwriter returns 空字符串。谁能看出原因?

XMLwriter returns empty string. Can anyone see a reason?

此函数应创建一个 xml 文件,该文件最终会传递给控制器​​中的 curl 请求,并最终传递给会计 api。当我传入静态 XML 文件时,curl 请求工作正常。

此处的代码应根据正在创建的客户端生成动态 xml 文件。

无论出于何种原因,它都返回一个空字符串。

部分字段允许为空。

如有任何想法,我们将不胜感激。

$writer = new XMLWriter($xmlString);
// Output directly to the user 
$writer->openMemory();

$writer->openURI('php://output'); 
$writer->startDocument('1.0');
$writer->writeAttribute('encoding', 'utf-8');

$writer->startElement('request');
$writer->writeAttribute('method', 'client.create');

$writer->setIndent(true); 

$writer->startElement('client'); 
//---------------------------------------------------- 

$writer->writeElement('first_name', $org->first_name);
$writer->writeElement('last_name', $org->last_name);
$writer->writeElement('organization', $org->name); 
$writer->writeElement('email', $org->contact_email);
$writer->writeElement('username', $org->contact_name);
$writer->writeElement('password');

//---------------------------------------------------- 

$writer->startElement('contacts'); 

$writer->startElement('contact'); 

    $writer->writeElement('username', $org->contact_name);
    $writer->writeElement('first_name', $org->first_name);
    $writer->writeElement('last_name', $org->last_name);
    $writer->writeElement('email', $org->contact_email); 
    $writer->writeElement('phone1', $org->contact_phone);
    $writer->writeElement('phone2'); 

// contact 
$writer->endElement(); 

// End contacts 
$writer->endElement(); 
//---------------------------------------------------- 

$writer->writeElement('work_phone', $org->contact_phone);
$writer->writeElement('home_phone', $org->contact_phone);
$writer->writeElement('mobile', $org->contact_phone);
$writer->writeElement('fax', $org->contact_phone);
$writer->writeElement('language', 'en');
$writer->writeElement('currency_code', 'USD');
$writer->writeElement('phone1', $org->contact_phone);
$writer->writeElement('notes');

// primary address
$writer->writeElement('p_street1');
$writer->writeElement('p_city');
$writer->writeElement('p_state');
$writer->writeElement('p_code');

// secondary address
$writer->writeElement('s_street1');
$writer->writeElement('s_city');
$writer->writeElement('s_state');
$writer->writeElement('s_code');

$writer->writeElement('vat_name');
$writer->writeElement('vat_number');


// End channel 
$writer->endElement(); 

// End request
$writer->endElement();  

$writer->endDocument(); 

$currentMemory = $writer->outputMemory();

$writer->flush();

return $currentMemory;
}

我删除了这段代码:

$writer->openURI('php://output');

并留在这个片段中:

$writer->openMemory();

由于我将 xml 传递给控制器​​,

openURI()

不是正确的方法,因为它旨在直接输出给用户。

openMemory()

保存数据,然后在函数底部关闭,在包含此文件后使其在我的控制器函数中可用。