Nếu bạn muốn thử một cách khác, có thể sử dụng Magento \ Framework \ Filesystem \ Io \ File và Magento \ Framework \ Convert \ ConvertArray. ConvertArray rất hữu ích để tạo một tệp xml từ một mảng nhiều chiều và Tệp có thể viết nó cho bạn (và kiểm tra quyền, tạo thư mục và hơn thế nữa). Đây là một ví dụ cơ bản:
public function __construct(
\Magento\Framework\Filesystem\Io\File $file,
\Magento\Framework\Convert\ConvertArray $convertArray
)
{
$this->file = $file;
$this->convertArray = $convertArray;
}
public function createMyXmlFile($assocArray, $rootNodeName, $filename = 'file.xml')
{
// ConvertArray function assocToXml to create SimpleXMLElement
$simpleXmlContents = $this->convertArray->assocToXml($assocArray,rootNodeName);
// convert it to xml using asXML() function
$content = $simpleXmlContents->asXML();
$this->file->write($filename, $contents);
}
nếu mảng của tôi là:
$myArray = array(
'fruit' => 'apple',
'vegetables' => array('vegetable_1' => 'carrot', 'vegetable_2' => 'tomato'),
'meat' => 'none',
'sweets' => 'chocolate');
và tôi gọi chức năng của mình:
$simpleXmlContents = $this->convertArray->assocToXml($myArray, 'diner');
$this->file->write($myXmlFile,$simpleXmlContents->asXML());
Tôi sẽ nhận được những điều sau đây trong myfile.xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<diner><fruit>apple</fruit><vegetables><vegetable_1>carrot</vegetable_1>
<vegetable_2>tomato</vegetable_2></vegetables><meat>none</meat>
<sweets>chocolate</sweets></diner>