Files
cdnPRO/drmaterac.pl/xml-convert.php
2024-10-25 16:01:25 +02:00

90 lines
2.8 KiB
PHP

<?php
$file = file_get_contents('http://www.b2b.estella.eu/generator/22413dfa-be6d-473d-b301-282351168cf6/xml/2a8de1e8-f347-405b-9de8-9eb69b99c3ca');
$doc = new DOMDocument();
$doc->loadXML($file);
$xpath = new DOMXPath($doc);
$products = $xpath->query('//Document/Produkt');
foreach ( $products as $product )
{
// Sprawdzamy, czy istnieje jakikolwiek element <Link_do_zdjecia> wewnątrz <Linki_do_zdjec>
$images = $xpath->query('Linki_do_zdjec/Link_do_zdjecia', $product);
// Pobieramy wartość elementu <Cena_detaliczna_brutto>
$price = $xpath->evaluate('number(Cena_detaliczna_brutto)', $product);
// Jeśli nie ma żadnego elementu <Link_do_zdjecia>, usuwamy element <Produkt>
if ($images->length === 0 || $price == 0) {
$productsToRemove[] = $product;
}
// jeżeli jest kilka elementów <Link_do_zdjecia>, to połącz je w jednen separatorem | a następnie zapisz w pierwszym z nich i resztę usuń
if ($images->length > 1) {
$firstImage = $images->item(0);
$imageStrings = array_map(function($image) {
return $image->nodeValue;
}, iterator_to_array($images));
$firstImage->nodeValue = implode('|', $imageStrings);
for ($i = 1; $i < $images->length; $i++) {
$images->item($i)->parentNode->removeChild($images->item($i));
}
}
$nazwa = $xpath->evaluate('string(Nazwa)', $product);
if ( strpos( $nazwa, 'Poszewka' ) !== false )
{
//dodaj kategorię
$category = $doc->createElement('Kategoria');
$category->appendChild($doc->createTextNode('ochraniacze na poduszkę'));
$product->appendChild($category);
}
// pościel
if ( strpos( $nazwa, 'Pościel' ) !== false )
{
//dodaj kategorię
$category = $doc->createElement('Kategoria');
$category->appendChild($doc->createTextNode('Komplety pościeli'));
$product->appendChild($category);
}
// koce
if ( strpos( $nazwa, 'Koc' ) !== false )
{
//dodaj kategorię
$category = $doc->createElement('Kategoria');
$category->appendChild($doc->createTextNode('Kołdry'));
$product->appendChild($category);
}
// prześcieradło
if ( strpos( $nazwa, 'Prześcieradło' ) !== false )
{
//dodaj kategorię
$category = $doc->createElement('Kategoria');
$category->appendChild($doc->createTextNode('Prześcieradła'));
$product->appendChild($category);
}
// Topper
if ( strpos( $nazwa, 'Topper' ) !== false )
{
//dodaj kategorię
$category = $doc->createElement('Kategoria');
$category->appendChild($doc->createTextNode('Prześcieradła'));
$product->appendChild($category);
}
}
foreach ($productsToRemove as $product) {
if ($product->parentNode !== null) {
$product->parentNode->removeChild($product);
}
}
$doc -> save( 'estella.xml' );
echo '<p>wygenerowano https://cdn.projectpro.pl/drmaterac.pl/estella.xml</p>';
?>