Извлечь атрибуты из xml - PullRequest
0 голосов
/ 06 мая 2020

это xml:

<Product>
<Denumire>MOUSE ASUS PC sau NB, cu fir, USB, optic, 1000 dpi, butoane/scroll 3/1, argintiu, "90XB01EN-BMU060" (include timbru verde 0.1 lei)</Denumire>
<Denumire_grupa>MOUSE Asus</Denumire_grupa>
<Cod>90XB01EN-BMU060</Cod>
<Valuta>EUR</Valuta>
<PretVanzare>3.9</PretVanzare>
<Stoc>WAIT</Stoc>
<Producator>Asus</Producator>
<Garantie>12 luni</Garantie>
<Nom_ID>106113</Nom_ID>
<Imagini>
<Imagine>http://produse.r-c.ro/wp-content/uploads/2020/01/90xb01en-bmu060_4171268934.jpg</Imagine>
<Imagine>http://produse.r-c.ro/wp-content/uploads/2020/01/90xb01en-bmu060_3618653409.jpg</Imagine>
</Imagini>
<Atribute>
<Atribut>
<Denumire>Categorie</Denumire>
<Valoare>notebook | PC</Valoare>
</Atribut>
<Atribut>
<Denumire>Tip</Denumire>
<Valoare>cu fir</Valoare>
</Atribut>
<Atribut>
<Denumire>Tehnologie</Denumire>
<Valoare>optic</Valoare>
</Atribut>
<Atribut>
<Denumire>Rezolutie (dpi)</Denumire>
<Valoare>1000 dpi</Valoare>
</Atribut>
<Atribut>
<Denumire>Interfata mouse</Denumire>
<Valoare>USB</Valoare>
</Atribut>
<Atribut>
<Denumire>Butoane/rotite</Denumire>
<Valoare>3/1</Valoare>
</Atribut>
<Atribut>
<Denumire>Culoare</Denumire>
<Valoare>argintiu</Valoare>
</Atribut>
<Atribut>
<Denumire>Altele</Denumire>
<Valoare>nu</Valoare>
</Atribut>
</Atribute>
<index>7237</index>
</Product>

это php код:

foreach($products->Product as $prod)
{   
    $atribute = array();


    foreach($prod->Atribute as $key=>$atr)
        {
            $nume_atribut               = mysqli_real_escape_string($con, (string)$atr->attributes()[0]);
            $atribute[$nume_atribut]    = mysqli_real_escape_string($con, (string)$atr);
            unset($nume_atribut);

        }
    var_dump($atribute); exit();

и это ответ:

array(1) { [""]=> string(6) "\n\n\n" }

я хочу, чтобы ответ был таким:

Категория ie: блокнот P C Совет: у ели Технолог ie: opti c Резолют ie (dpi): 1000 dpi Мышь Interfata: USB Бутоан / ротит: 3/1 Culoare: argintiu Altele: nicio funct ie speciala

Может ли кто-нибудь помочь в том, что я делаю не так в файле php? Меня интересуют только строки атрибутов, остальные линейки продуктов xml в порядке

1 Ответ

0 голосов
/ 06 мая 2020

Я предполагаю, что в файле только 1 продукт (в соответствии с вашим примером), но должно быть легко l oop вместо Atribut ...

$attribute = array();

foreach($products->Atribute->Atribut as $atr)
{
    $attribute[(string)$atr->Denumire] = (string)$atr->Valoare;
}

print_r($attribute);

дает ...

Array
(
    [Categorie] => notebook | PC
    [Tip] => cu fir
    [Tehnologie] => optic
    [Rezolutie (dpi)] => 1000 dpi
    [Interfata mouse] => USB
    [Butoane/rotite] => 3/1
    [Culoare] => argintiu
    [Altele] => nu
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...