XML inladen met minteken in dataveld

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Koen B

Koen B

11/01/2011 16:39:31
Quote Anchor link
Beste PHPers,

Ik heb een laatst een website gekocht waarom XML bestanden worden ingeladen en omgezet worden naar een database. Nu gaat dat bij de meeste velden wel goed, alleen bij velden met een naam waarin een - teken in voorkomt gaat dit niet goed. Ik zal dit even uitleggen met was code. (Die ik niet zelf gemaakt heb.)

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
<?php
$xml
= simplexml_load_file("cache/file.xml");

foreach ($xml->item as $items) {
    //Weggelaten code

    //Deze gaan goed

    $link = trim($items->link);
    $foto = trim($items->img_medium);

    //deze gaat dus fout door het minteken
    $stars = trim($items->star-rating);

    $sql_insert = "insert into database //...
}
?>

Ik heb gegoogled naar een oplossing maar niks gevonden en ik heb denk ik alle combinaties van quotes geprobeerd. Niks lukt, vandaar dat ik het aan jullie vraag.

Mvg, Koen

PS, de XML bestanden zijn extern en dienen dagelijks vernieuwd te worden. Ik kan dus niet handmatig de mintekens weghalen.
Gewijzigd op 11/01/2011 16:42:47 door Koen B
 
PHP hulp

PHP hulp

26/09/2022 18:13:46
 
Kees Schepers

kees Schepers

11/01/2011 16:55:19
Quote Anchor link
Twee mogelijkheden:

1. de naam van het veld dynamisch opvragen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$field
= 'star-rating';
$stars = trim($items->$field);
?>


2. Ook een mogelijkheid is XPATH gebruiken om velden op te halen

3. Ook iets zoals dit zou moeten werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$stars
= trim($items->{star_rating});
?>


Laatste weet ik niet 100% zeker of het de correcte manier is, maar iets in die richting. Test het anders :)
Gewijzigd op 11/01/2011 16:56:35 door kees Schepers
 
Koen B

Koen B

11/01/2011 17:14:09
Quote Anchor link
Geweldig, oplossing 1 werkt! Soms zijn oplossingen heel simpel :)

Bedankt.
 



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.