繁体   English   中英

从 xml 中提取属性

[英]Extract attributes from xml

这是 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" }

我希望答案是这样的:

类别:笔记本电脑
提示:铜杉
技术:光学
分辨率 (dpi): 1000 dpi
鼠标:USB
丁烷/腐石:3/1
文化: argintiu
Altele: nicio functie speciala

谁能帮助我在 php 文件中做错了什么? 我只对产品线 xml 的属性线 rest 感兴趣

我假设文件中只有 1 个产品(根据您的示例),但应该很容易遍历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
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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