helloff34 Bunun için bir controller yazabilirsiniz, size xml çıktı verir ya da direkt dosyayı indirirsiniz hangisini istiyorsanız. Kullanım şekli ise örneğin:
$products = Product::all();
$xml = new DOMDocument('1.0', 'utf-8');
// <products> şeklinde bir root element oluşturalım
$xmlProducts = $xml->createElement('products');
foreach($products as $product) {
// <product> elementini oluşturalım
$xmlProduct = $xml->createElement('product');
// Buna <product color="Kırmızı"> şeklinde özellik ekleyelim
$xmlProduct->setAttribute('color', $product->color);
// Buna <product size="XL"> şeklinde özellik ekleyelim
$xmlProduct->setAttribute('size', $product->size);
// <name> elementi oluşturalım
$xmlProductName = $xml->createElement('name', $product->name);
// <price> elementi oluşturalım
$xmlProductPrice = $xml->createElement('price', $product->price);
// <product> içine <name> elementini ekleyelim
$xmlProduct->appendChild($xmlProductName);
// <product> içine <price> elementini ekleyelim
$xmlProduct->appendChild($xmlProductPrice);
// <products> içine bu <product> elementini ekleyelim
$xmlProducts->appendChild($xmlProduct);
}
// <products> elementini XML içine root olarak ekleyelim.
$xml->appendChild($xmlProducts);
// Hiyerarşiyi XML'e çevirelim
return $xml->saveXML();
Bu size şu şekilde bir XML çıktı verir:
<?xml version="1.0" encoding="utf-8"?>
<products>
<product color="Kırmızı" size="S">
<name>Ürün 1</name>
<price>55.99</price>
</product>
<product color="Mavi" size="XL">
<name>Ürün 1</name>
<price>175</price>
</product>
</products>
Mesela bunu ekrana basmak yerine xml dosyası olarak indirmek isterseniz:
return response()->streamDownload(function () use ($xml) {
echo $xml->saveXML();
}, 'products.xml');
- Yani ilk olarak pazar yeri için nasıl bir XML'e ihtiyacınız var onu öğreneceksiniz.
- DOMDocument kullanarak öğrendiğiniz yapıda ürünlerinizi XML'e çevireceksiniz
- Bu işlemi bir controller içinde yapıp ya direkt xml çıktı vereceksiniz ya da dosya olarak indirteceksiniz.