php ile xml okuma Problemi
merhaba arkadaşlar yardımınıza ihtiyacım var.
https://korfezotoyedekparca.site/martas1.xml adresinde ürünlerimin bulunduğu bir xml mevcut bu ürünlerin olduğu xml i
<?php
$data = simplexml_load_file("https://korfezotoyedekparca.site/martas1.xml");
$xml = new SimpleXMLElement("<xml/>");
foreach ($data->Products as $Products);
$Products= $xml->addChild("Products");
$Product_elements =$Products->addchild("Product");
$Product_elements->addchild("ID", $data->Result->Products->Product["ID"]);
$Product_elements->addchild("BrandID", $data->Result->Products->Product["BrandID"]);
$Product_elements->addchild("ProductCode", $data->Result->Products->Product["ProductCode"]);
$Product_elements->addchild("Unit", $data->Result->Products->Product["Unit"]);
$Product_elements->addchild("MinOrderAmount", $data->Result->Products->Product["MinOrderAmount"]);
$Product_elements->addchild("BaseOeNr", $data->Result->Products->Product->BaseOeNr);
$Product_elements->addchild("ProductName", $data->Result->Products->Product->ProductNames->ProductName);
$Product_elements->addchild("Price", $data->Result->Products->Product->Pricing->LocalNetPriceWVat);
header('content-type:text/xml');
echo $xml->asXML();
?>
bu kod ile almaya çalışıyorum ancak normalde 310.000 adet ürün var.
Deneme amaçlı 3 tane koydum ancak sadece 1 tanesini yani en baştaki ürünü çekebiliyorum yardımcı olursanız çok sevinirim.
<xml>
<Products>
<Product>
<ID>135557</ID>
<BrandID>174</BrandID>
<ProductCode>KR-PML-PXCRA-002L1</ProductCode>
<Unit>PCE</Unit>
<MinOrderAmount>1</MinOrderAmount>
<BaseOeNr>5525744100</BaseOeNr>
<ProductName>MAKAS LASTIK-(HYUNDAI: H100 MINUBUS 94>08/H100 KAMYONET 94>11/MITSUBISHI: L300 90>11 )UZUN</ProductName>
<Price>6.67267752</Price>
</Product>
</Products>
</xml>
var_dump
kullanarak aldığın sonuçların uzunluğunu görebilirsin. sen sınıfı yanlış başlatmışsın, ayrıca bu kadar büyük bir xml verisinde sadece bir tane olan tagı döngüye almışsın. sonuçlarıda aliasdan değil ana değişkenden okuyorsun, tabi ki de tek sonuç dönüyor. addChild
ekler, sen boş dökümana son sonuçları ekliyorsun. benim verdiğim örneğin sonuçlarını döngü içerisinde kullanarak ekleme yapman gerekiyor. tam kod da ekleyebilirdim çalışan bir örnek için ama, bazı arkadaşlar çözüme ulaşana kadar (çalışan tam kod örneğine) patır patır yanıt verip, sonra konuyu çözümsüz bırakıp yeni sorular soruyorlar. halbu ki işlerini gördüler, sorunlarını çözdüler. içimden gelmiyor artık tam kod eklemek. örnek orda, mantık burada. denersen doğrusunu yapacaksın.
verdiğim örnekle yapacağın da şu yani;
foreach($urun as $e){
}
toplama konsunda ise, spesifik durumlarda seçimlerinize devam etmek için ve yeni sonuçlar üretmek için, referans olarak okuyacağınız değerlerde xpath
methoduna regex
kullanarak başvurmanız gerekmekte.
$xml->xpath('//Stock/@WarehouseID');