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.)

<?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.
Twee mogelijkheden:

1. de naam van het veld dynamisch opvragen:

<?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:

<?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 :)
Geweldig, oplossing 1 werkt! Soms zijn oplossingen heel simpel :)

Bedankt.

Reageren