[PHP5] XML element bevat gereserveerde naam in PHP

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Zoals de topic title al omschrijft, heb een XML document met een element als volgt:

XML:
1
<class>Class_Name</class>


Dit XML document parse ik in PHP met de volgende functie

PHP:
1
$xml = simplexml_load_file('test.xml');


De waarde uit het XML document probeer ik alsvolgt te benaderen

PHP:
1
echo $xml->class;


Zoals je begrijpt, PHP vind dat niet zo leuk.

Het is overigens niet mogelijk om de XML documenten aan te passen.

Ik heb al geprobeerd om hem tussen quotes te zetten, maar zonder resultaat.

  • Cloud
  • Registratie: November 2001
  • Laatst online: 17-09 10:39

Cloud

FP ProMod

Ex-moderatie mobster

Verwijderd schreef op donderdag 14 december 2006 @ 11:39:
Zoals de topic title al omschrijft, heb een XML document met een element als volgt:

XML:
1
<class>Class_Name</class>


Dit XML document parse ik in PHP met de volgende functie

PHP:
1
$xml = simplexml_load_file('test.xml');


De waarde uit het XML document probeer ik alsvolgt te benaderen

PHP:
1
echo $xml->class;


Zoals je begrijpt, PHP vind dat niet zo leuk.

Het is overigens niet mogelijk om de XML documenten aan te passen.

Ik heb al geprobeerd om hem tussen quotes te zetten, maar zonder resultaat.
Misschien denk ik te simpel hoor. Maar als je toch vantevoren weet (je gebruikt de term ook hardcoded in je script) dat je met 'class' te maken hebt, kun je dan niet gewoon in die loadXML() alle woorden 'class' naar 'klasse' veranderen? Dan pas je de XML niet aan, maar maak je het jezelf wel makkelijk. Anders denk ik namelijk dat je nog héel lang bezig zal zijn hiermee. ;)

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


Verwijderd

Je kunt ook gebruik maken van de DOM XML functies, dat lost het probleem volgens mij op.

Verwijderd

Topicstarter
@wolkje, wel een goeie... kan natuurlijk de XML als string binnen laden, en alle woorden class vervangen... goed idee!!

@djingelz... en ik vond simplexml net zo leuk :p

Nee serieus, voor mijn doel en leesbaarheid van de code is simplexml echt top! Heb ook naar DOM XML gekeken maar ik prefereer voor dit doel toch eerdergenoeme.

Verwijderd

Ik heb het idee dat je nu een smerige oplossing gaat maken, maar dat mag je natuurlijk zelf weten :). Simplexml heeft zijn beperkingen zoals je ziet, daar op deze manier omheen werken lijkt me niet wenselijk gezien onderhoudbaarheid, uitbreidbaarheid, etc...

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Je kan toch ook een XPATH query loslaten op je simplexml object en dan met een foreach door de properties van je teruggekopte heenlopen? Dan ben je ook van het probleem af imo :)

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heb het probleem inmiddels opgelost door de XML aan te passen met str_replace, heel smerig ik weet het, maar het werkt en daar gaat het om. Nu laat ik namelijk diegene die het xml bestandje gegenereerd zijn progje ff aanpassen, kan het weer netjes ;)

thx voor de feedback in ieder geval

Acties:
  • 0 Henk 'm!

  • Paul C
  • Registratie: Juni 2002
  • Laatst online: 23:39
Eerste ingeving:
werkt dit (oid) eigenlijk niet:
code:
1
2
3
4
<?php
$klasse = 'class';
echo $xml->$klasse;
?>

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
pcmadman schreef op vrijdag 15 december 2006 @ 12:57:
Eerste ingeving:
werkt dit (oid) eigenlijk niet:
code:
1
2
3
4
<?php
$klasse = 'class';
echo $xml->$klasse;
?>
das ook een leuke! Ga ik even proberen, maar ik vermoed van niet omdat het vermoedelijk in een object niet is toegestaan na de -> een $ te gebruiken, maar dat is mijn eerste ingeving :)

Ga het even proberen, want is wel leuk om te weten.

brb ;)

edit: "dat werkt dus, mooie oplossing!!"

[ Voor 4% gewijzigd door Verwijderd op 15-12-2006 14:09 ]


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

dat werkt dus op dezelfde manier als mijn foreach suggestie ;)

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
SchizoDuckie schreef op vrijdag 15 december 2006 @ 14:24:
dat werkt dus op dezelfde manier als mijn foreach suggestie ;)
okee... jij ook een beetje credits O-), alleen madman legde het net iets eenvoudiger uit :p
Pagina: 1