dubbele punt in xml tag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

KoK

KoK

26/05/2008 14:35:00
Quote Anchor link
Hallo,

Ik ben bezig met het uitlezen van een xml document en dat gaat prima totdat ik gegevens uit een tag moet halen waar een dubbele punt in zit.

Mijn script ziet er zo uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php

$xml
= simplexml_load_file('test.xml');

foreach($xml->note as $item){
    $tos[] = $item->to;
}


?>


XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss>
    <note>
        <to>Tove</to>
        <from>Jani</from>
        <heading>Reminder</heading>
        <bodys>Don't forget me this weekend!</bodys>
    </note>
    <note>
        <to>Dirk</to>
        <from>Lex</from>
        <heading>Leuk</heading>
        <bodys>Don't forget me this weekend!</bodys>
    </note>
</rss>


Dit doet hij allemaal prima. Maar als ik een xml wil uitlezen waar een tag in zit met een dubbele punt (bijv. <to:person>) Dan krijg ik een error.
Iemand een idee hoe ik toch de gegevens uit tags met een dubbele punt kan halen?
Alvast bedankt voor de hulp.
Groeten,
KoK
Gewijzigd op 12/02/2019 19:59:10 door - Ariën -
 
PHP hulp

PHP hulp

25/11/2024 17:58:28
 
Jacco Engel

Jacco Engel

26/05/2008 14:37:00
Quote Anchor link
Denk dat er een fout in de opmaak van je XML zit
 
Crispijn -

Crispijn -

26/05/2008 14:45:00
Quote Anchor link
waarom wil je je tags met een dubbele punt? to, from etc is toch al voldoende?
 
Frank -

Frank -

26/05/2008 14:48:00
Quote Anchor link
Ziet er uit als een probleem met de namespaces, die noem je namelijk niet.
 
KoK

KoK

26/05/2008 15:05:00
Quote Anchor link
Het probleem is dat ik een xml toegestuurd krijg en dat ik hier data uit ophaal en opsla in een database. Ik kan zelf dus geen invloed uitoefenen op de structuur van de xml.
Hier zitten echter tags in waar een dubbele punt in voor komt. Vandaar mijn vraag.
Zo ziet de structuur eruit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<item>
    <title>filmpje</title>
        <media:flashlink>
            content_flashlink
        </media:flashlink>
        <media:ftpflash>
            content_ftpflash
        </media:ftpflash>
        <media:ftpmp4>
            content_ftpmp4
        </media:ftpmp4>
        <media:ftpwmv>
            content_ftpwmv
        </media:ftpwmv>
        <media:ftpmpeg2>
            content_ftpmpeg2
        </media:ftpmpeg2>
</item>
Gewijzigd op 12/02/2019 19:59:28 door - Ariën -
 
Hipska BE

Hipska BE

26/05/2008 15:10:00
Quote Anchor link
Het probleem is dat je niet $item->to:person kan doen?

Probeer eens als dit lukt: $item->{'to:person'}
 
Arian Stolwijk

Arian Stolwijk

26/05/2008 15:11:00
Quote Anchor link
Kijk hier eens: http://www.scriptorama.nl/tutorials/flickr-rss-feed-met-simplexml

Staat ook wat uitgelegd over namespaces;)
 
KoK

KoK

26/05/2008 15:17:00
Quote Anchor link
Hipska schreef op 26.05.2008 15:10:
Het probleem is dat je niet $item->to:person kan doen?

Probeer eens als dit lukt: $item->{'to:person'}


Nee helaas pakt ie dit niet..
Maar toch bedankt!
 
KoK

KoK

26/05/2008 16:05:00
Quote Anchor link
Arian schreef op 26.05.2008 15:11:
Kijk hier eens: http://www.scriptorama.nl/tutorials/flickr-rss-feed-met-simplexml

Staat ook wat uitgelegd over namespaces;)


Hartstikke bedankt Arian!:D Het werkt!

Groeten,
KoK

PS: De rest ook bedankt voor hun bijdrage
 
Daniel VDM

Daniel VDM

12/02/2019 12:56:59
Quote Anchor link
Hallo, ik heb het zelfde probleem bij het lezen van een XML waarvan er een tag met dubbel punt tussenzit.
De link met de oplossing iets verderop in dit forum item werkt niet (meer).
Zou iemand een oplossing voorhanden hebben?
Thanks

Daniel
 
Marthijn Buijs

Marthijn Buijs

12/02/2019 13:16:33
Quote Anchor link
Misschien zoiets?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$item->{'person:to'}
 
Thomas van den Heuvel

Thomas van den Heuvel

12/02/2019 16:52:28
Quote Anchor link
Al geGoogled? Eerste resultaat.
 
Daniel VDM

Daniel VDM

12/02/2019 19:32:08
Quote Anchor link
nee hoor, krijg notitie op die bewuste lijn.

Notice: Array to string conversion in /home/vbrvnbe1/domains/test.be/public_html/API/test.php on line 13
 
Thomas van den Heuvel

Thomas van den Heuvel

12/02/2019 19:47:49
Quote Anchor link
Geen idee wat je op regel 13 van test.php aan het doen bent.

Relevante code?

En wellicht een nieuw draadje maken i.p.v. een 11 jaar oude thread te kapen.
 
- Ariën  -
Beheerder

- Ariën -

12/02/2019 19:47:56
Quote Anchor link
Laat je relevante code eens zien?

PS: Zou je in het vervolg een nieuw topic willen aanmaken in plaats van een topic van iemand anders te kapen? Omdat er al een hulpvraag open staat, laat ik deze als uitzondering open staan.
 
Daniel VDM

Daniel VDM

12/02/2019 20:10:15
Quote Anchor link
Sorry voor het "kapen" van een ander topic maar deed voor goed gezien het om een identiek issue gaat en de link bij een van de antwoorden niet werkte.
Ik had absoluut geen slechte bedoelingen hoor, oprecht sorry.

dit is mijn code.

De XML ziet er als volgt uit;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?xml version="1.0" encoding="UTF-8"?>


-<clubs xmlns:a="http://schemas.datacontract.org/2004/07/Webservice.Classes" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">


-<club>

<a:clubnr>101001</a:clubnr>

<a:naam>TFC Frisia</a:naam>

<a:plaats>Aldeboarn</a:plaats>

<a:regio>Friesland</a:regio>

<a:website>www.tfcfrisia.nl</a:website>

</club>


-<club>

<a:clubnr>101002</a:clubnr>

<a:naam>abc Rally</a:naam>

<a:plaats>Sneek</a:plaats>

<a:regio>Friesland</a:regio>

<a:website></a:website>

</club>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

$teller = '0';
$xml= simplexml_load_file('http://www.xxxx.be/API/clubs.php');


foreach ($xml->club as $item)
{

    $teller = ($teller + '1');
    $club[] = $item->{'a:naam'};
    echo ("teller= ".$teller." ".$club."<br>");
}

              
?>
 
Thomas van den Heuvel

Thomas van den Heuvel

12/02/2019 23:25:55
Quote Anchor link
De foutmelding heeft niks met XML te maken. $club is een array, je kunt $club dus niet rechtstreeks weergeven.

De syntax waar je naar zoekt is waarschijnlijk zoiets:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$xml
= simplexml_load_file('clubs.xml');

$club = array();
foreach ($xml->club as $item)
{

    $naam = $item->children('a', true)->naam;
    $club[] = $naam;
    echo $naam.'<br>';
}


?>
[end]

Zoals ook min of meer in het hierboven gelinkte artikel staat.
 
Daniel VDM

Daniel VDM

13/02/2019 07:19:05
Quote Anchor link
@ Thomas, dit werkt idd perfect !!
Zeer hartelijk dank voor alle andere reacties.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.