سؤال

I have protected function with php-code:

$replaceData = array(
        '%userName%' => $order->getUserFullName(),
        '%userEmail%' => $order->getUserEmail(),
        '%userPhone%' => $order->getUserPhone(),
        '%userDeliver%' => $order->getUserDeliverTo(),
        '%orderId%' => $order->getId(),
        '%orderKey%' => $order->getKey(),
        '%orderLink%' => shop_url('cart/view/' . $order->getKey()),
    );

How to save this array to xml-file using simpleXML?

هل كانت مفيدة؟

المحلول

Try to do this:

$replaceData = array(
        '%userName%' => $order->getUserFullName(),
        '%userEmail%' => $order->getUserEmail(),
        '%userPhone%' => $order->getUserPhone(),
        '%userDeliver%' => $order->getUserDeliverTo(),
        '%orderId%' => $order->getId(),
        '%orderKey%' => $order->getKey(),
        '%orderLink%' => shop_url('cart/view/' . $order->getKey()),
    );

$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($replaceData, array ($xml, 'addChild'));
print $xml->asXML();

Correction, try this to save as xml

//Save  as xml
$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$root = $doc->createElement('root');
$root = $doc->appendChild($root);
foreach($replaceData as $key=>$value)
{
   $em = $doc->createElement($key);       
   $text = $doc->createTextNode($value);
   $em->appendChild($text);
   $root->appendChild($em);

}
$doc->save('file.xml');
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top