WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   XML . Få ut data från SimpleXMLElement Object (https://www.wn.se/forum/showthread.php?t=1043011)

jarnheimer 2010-07-22 09:46

XML och PHP - Få ut data från SimpleXMLElement Object
 
Hej!

Det kryllar med svar på frågan på Internet. Men jag har inte lyckats hitta en lösning.

Kod:

Array
(
    [0] => Array
        (
            [text] => SimpleXMLElement Object
                (
                    [0] => Text, text, text...
                )

            [url] => http://www.url.se
            [date] => 2010-07-12 07:04
            [name] => SimpleXMLElement Object
                (
                    [0] => Viktor
                )

        )

    [1] => Array
        (
            [text] => SimpleXMLElement Object
                (
                    [0] => Text text text...
                )

            [url] => http://www.url2.se/
            [date] => 2010-07-05 16:17
            [name] => SimpleXMLElement Object
                (
                    [0] => Viktor
                )

        )

Vill jag ska se ut så här:

Kod:

Array
(
    [0] => Array
        (
            [text] => Text, text, text...
            [url] => http://www.url.se
            [date] => 2010-07-12 07:04
            [name] => Viktor

        )

    [1] => Array
        (
            [text] => Text text text...
            [url] => http://www.url2.se/
            [date] => 2010-07-05 16:17
            [name] => Viktor

        )
)

XML verkar tolkas annorlunda jämfört med en vanlig array i PHP. Det fungerar inte att använda följande PHP-kod:
Kod:

$array["text"][0]
Hur kommer jag in i SimpleXMLElement Object?

Tack på förhand!

crazzy 2010-07-22 11:43

Ta en titt på exempel #2 här: http://se2.php.net/manual/en/simplex...ples-basic.php

studiox 2010-07-22 13:22

Det beror att simple XML listar alla noder i en XML fil. Den plockar inte bort alla undernoder och lägger dom under rooten såklart, för då vore det helt fel.

terbon 2010-08-17 00:32

Om du tvunget behöver ha det på den formen, skulle jag föreslå att du gör en funktion som konverterar xml-objektet isåfall.

Om det handlar om att du exempelvis göra en manuell sorteringsalgoritm, så skulle jag snarare använda det på formen det hade. Dock så skulle jag nog jämföra hur lång tid körningen på scriptet tar, för att se vad som var effektivast.

taz76 2010-08-17 21:13

Du måste köra lite typecast för att slippa SimpleXMLElement Object :) Som t.ex:

<root>
<elm1>lorem ipsium</elm1>
..


... som läser in till simplexml $xmlDoc och så typecast:
$data = (string)$xmlDoc->elm1;

emilv 2010-08-17 23:59

Citat:

Ursprungligen postat av taz76 (Inlägg 20365869)
Du måste köra lite typecast för att slippa SimpleXMLElement Object :) Som t.ex:

<root>
<elm1>lorem ipsium</elm1>
..


... som läser in till simplexml $xmlDoc och så typecast:
$data = (string)$xmlDoc->elm1;

... eller så kör man med ->nodeValue så man slipper en ful typomvandling?

taz76 2010-08-18 01:20

Citat:

Ursprungligen postat av emilv (Inlägg 20365892)
... eller så kör man med ->nodeValue så man slipper en ful typomvandling?

... eller så tycker man det inte är fult? :P

Jine 2010-08-25 22:08

Citat:

Ursprungligen postat av taz76 (Inlägg 20365895)
... eller så tycker man det inte är fult? :P

Fast det är det...


Alla tider är GMT +2. Klockan är nu 03:41.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson