简体   繁体   中英

Extract attributes from xml

this is the 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>

this is the php code:

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();

and this is the answear:

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

i want the answear to be like that:

Categorie: notebook PC
Tip: cu fir
Tehnologie: optic
Rezolutie (dpi): 1000 dpi
Interfata mouse: USB
Butoane/rotite: 3/1
Culoare: argintiu
Altele: nicio functie speciala

Can anyone help what i am doing wrong in the php file? I am only interested in the atributes lines the rest of product lines xml are ok

I'm assuming there is only 1 product in the file (as per your example), but it should be easy to loop over the Atribut ...

$attribute = array();

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

print_r($attribute);

gives...

Array
(
    [Categorie] => notebook | PC
    [Tip] => cu fir
    [Tehnologie] => optic
    [Rezolutie (dpi)] => 1000 dpi
    [Interfata mouse] => USB
    [Butoane/rotite] => 3/1
    [Culoare] => argintiu
    [Altele] => nu
)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM