dubbele punt in xml tag
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)
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
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>
$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 -
Denk dat er een fout in de opmaak van je XML zit
waarom wil je je tags met een dubbele punt? to, from etc is toch al voldoende?
namespaces, die noem je namelijk niet.
Ziet er uit als een probleem met de Hier zitten echter tags in waar een dubbele punt in voor komt. Vandaar mijn vraag.
Zo ziet de structuur eruit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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>
<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 -
Probeer eens als dit lukt: $item->{'to:person'}
http://www.scriptorama.nl/tutorials/flickr-rss-feed-met-simplexml
Staat ook wat uitgelegd over namespaces;)
Kijk hier eens: Staat ook wat uitgelegd over namespaces;)
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'}
Probeer eens als dit lukt: $item->{'to:person'}
Nee helaas pakt ie dit niet..
Maar toch bedankt!
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;)
Staat ook wat uitgelegd over namespaces;)
Hartstikke bedankt Arian!:D Het werkt!
Groeten,
KoK
PS: De rest ook bedankt voor hun bijdrage
De link met de oplossing iets verderop in dit forum item werkt niet (meer).
Zou iemand een oplossing voorhanden hebben?
Thanks
Daniel
geGoogled? Eerste resultaat.
Al Notice: Array to string conversion in /home/vbrvnbe1/domains/test.be/public_html/API/test.php on line 13
Relevante code?
En wellicht een nieuw draadje maken i.p.v. een 11 jaar oude thread te kapen.
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.
Ik had absoluut geen slechte bedoelingen hoor, oprecht sorry.
dit is mijn code.
De XML ziet er als volgt uit;
-<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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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>");
}
?>
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>");
}
?>
De syntax waar je naar zoekt is waarschijnlijk zoiets:
Code (php)
Zoals ook min of meer in het hierboven gelinkte artikel staat.
Zeer hartelijk dank voor alle andere reacties.