Xml elemanlarının değerlerini almak nasıl?

2 Cevap php

I have some xml data and I am trying to access some elements. The structure of data is as below (using print_r($data)). I can get $data->{'parent'}->title, it works but if I try to get value of href using $data->{'parent'}->link[0]->{'@attributes'}->href .. it doesnt work .. any ideas?

Teşekkürler

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [children] => 29
            [modules] => 0
        )
[title] => Test title
[link] => Array
    (
        [0] => SimpleXMLElement Object
            (
                [@attributes] => Array
                    (
                        [href] => data.php?id=2322
                        [rel] => self
                        [type] => application/xml
                    )

            )

        [1] => SimpleXMLElement Object
            (
                [@attributes] => Array
                    (
                        [href] => data.php?id=2342
                        [rel] => alternate
                        [type] => text/html
                    )

            )

    )

[parent] => SimpleXMLElement Object
    (
        [@attributes] => Array
            (
                [children] => 6
                [modules] => 0
            )

        [title] => Top
        [link] => Array
            (
                [0] => SimpleXMLElement Object
                    (
                        [@attributes] => Array
                            (
                                [href] => /data.php?id=5763
                                [rel] => self
                                [type] => application/xml
                            )

                    )

                [1] => SimpleXMLElement Object
                    (
                        [@attributes] => Array
                            (
                                [href] => /data.php?id=2342
                                [rel] => alternate
                                [type] => text/html
                            )

                    )

            )

    )

)

2 Cevap

Çıkış Accessing @attribute from SimpleXML , especially the comment on the misleading var_dump SimpleXML nesneleri (print_r) çıktı.

O dedi, IIRC şu sizin örnekte çalışması gerekir:

$data->{'parent'}->link[0]['href']

(Bu özellikler standart dizi gösterimini kullanılarak ulaşılabilir, - bu kesinlikle tek unsurları değil, bu eleman koleksiyonuna ek indeksi ile çalışır eğer emin çalışır.)

Bir SimpleXMLElement incelemek için () print_r kullanmayın. Bunun yerine, sadece XML bakmak. Çocuklar nesne gösterimi ->name kullanılarak erişilir ve nitelikleri dizi gösterimini ['name'] kullanılarak erişilir.

Senin durumunda, bu öznitelik erişmek için doğru yolu olacağını tahmin

$data->parent->link[0]['href']