从多个具有属性的相似标签中读取值
Read value from multiple similar tags with attributes
我有一个 .xml 文件,如下所示:
<Products>
<Product>
<Denumire>Carcasa rigida THULE Legend GoPro, black (TLGC101)</Denumire>
<Cod>TLGC101</Cod>
<Atribut denumire="Tip">geanta/husa</Atribut>
<Atribut denumire="Compatibilitate">GoPro</Atribut>
<Atribut denumire="Dimensiuni">150 x 210 x 80 mm (exterior), 35 x 185 x 125 mm (interior)</Atribut>
<Atribut denumire="Greutate">0.24 kg</Atribut>
<Atribut denumire="Culoare">negru</Atribut>
<Atribut denumire="Altele">interior spuma EVA</Atribut>
<Atribut denumire="Cod">TLGC101</Atribut>
</Product>
我只是找不到提取 "Atribut" 标签("geanta/husa"、"GoPro" 等)的值的方法。我的代码如下所示:
$products = simplexml_load_file("http://abc.xyz/feed.xml");
foreach($products->Product as $prod)
{
foreach($prod->Atribut as $key=>$atr)
{
//extract the value for "denumire" attribute
$nume_atribut = (string)$atr->attributes()[0];
//get the value of the "Atribut" tag
}
}
转储 $prod->Atribut 给我:
object(SimpleXMLElement)#6 (8) {
["@attributes"]=>
array(1) {
["denumire"]=>
string(3) "Tip"
}
[0]=>
string(11) "geanta/husa"
[1]=>
string(5) "GoPro"
[2]=>
string(58) "150 x 210 x 80 mm (exterior), 35 x 185 x 125 mm (interior)"
[3]=>
string(7) "0.24 kg"
[4]=>
string(5) "negru"
[5]=>
string(18) "interior spuma EVA"
[6]=>
string(7) "TLGC101"
}
... 转储 $prod->Atribut[0] 时给出:
object(SimpleXMLElement)#8 (1) { ["@attributes"]=> array(1) {
["denumire"]=>
string(3) "Tip" } }
非常感谢!
直接使用SimpleXMLElement的方法__toString即可:
$atr->__toString()
或者使用类型转换(实际上它会在内部使用 __toString):
(string)$atr
我有一个 .xml 文件,如下所示:
<Products>
<Product>
<Denumire>Carcasa rigida THULE Legend GoPro, black (TLGC101)</Denumire>
<Cod>TLGC101</Cod>
<Atribut denumire="Tip">geanta/husa</Atribut>
<Atribut denumire="Compatibilitate">GoPro</Atribut>
<Atribut denumire="Dimensiuni">150 x 210 x 80 mm (exterior), 35 x 185 x 125 mm (interior)</Atribut>
<Atribut denumire="Greutate">0.24 kg</Atribut>
<Atribut denumire="Culoare">negru</Atribut>
<Atribut denumire="Altele">interior spuma EVA</Atribut>
<Atribut denumire="Cod">TLGC101</Atribut>
</Product>
我只是找不到提取 "Atribut" 标签("geanta/husa"、"GoPro" 等)的值的方法。我的代码如下所示:
$products = simplexml_load_file("http://abc.xyz/feed.xml");
foreach($products->Product as $prod)
{
foreach($prod->Atribut as $key=>$atr)
{
//extract the value for "denumire" attribute
$nume_atribut = (string)$atr->attributes()[0];
//get the value of the "Atribut" tag
}
}
转储 $prod->Atribut 给我:
object(SimpleXMLElement)#6 (8) {
["@attributes"]=>
array(1) {
["denumire"]=>
string(3) "Tip"
}
[0]=>
string(11) "geanta/husa"
[1]=>
string(5) "GoPro"
[2]=>
string(58) "150 x 210 x 80 mm (exterior), 35 x 185 x 125 mm (interior)"
[3]=>
string(7) "0.24 kg"
[4]=>
string(5) "negru"
[5]=>
string(18) "interior spuma EVA"
[6]=>
string(7) "TLGC101"
}
... 转储 $prod->Atribut[0] 时给出:
object(SimpleXMLElement)#8 (1) { ["@attributes"]=> array(1) { ["denumire"]=> string(3) "Tip" } }
非常感谢!
直接使用SimpleXMLElement的方法__toString即可:
$atr->__toString()
或者使用类型转换(实际上它会在内部使用 __toString):
(string)$atr