XML inladen met minteken in dataveld

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full Stack Developer-/ in (w/m/d) in Vollzeit

Wer sind wir? agriportance GmbH ist ein junges Start-Up Unternehmen und die Plattform für den erneuerbaren Treibstoff Biomethan/Bio-LNG mit Sitz in Münster. Als solche vermitteln wir Biomethan von landwirtschaftlichen geprägten Produzenten an Abnehmer aus dem Energiesektor und begleiten die notwendige Nachhaltigkeitszertifizierung. Da die Nachfrage nach Biomethan immer weiter steigen wird, sehen wir uns als Zukunftsorientierter und spannender Arbeitsgeber. Für weitere Informationen schau dir gerne unsere Website an: https://agriportance.com Zur Vergrößerung unseres Teams suchen wir zum nächstmöglichen Zeitpunkt einen engagierten Full Stack Developer-/ in (w/m/d) in Vollzeit Unser Team sucht sowohl Berufseinsteiger als auch erfahrene Mitarbeiter, denn jeder findet bei agriportance

Bekijk vacature »

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

05/12/2022 23:00:17
 
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.