Avatar billede apromis Praktikant
16. april 2016 - 08:53 Der er 4 kommentarer og
1 løsning

fejl tag i xml skal fjernes

Hej i kloge hoveder :)

Jeg loader en xml fra en ekstern server med denne:
$xml=simplexml_load_file($filedir) or die("Error: Cannot create object");

Problemet er, at de engang imellem smider <copy> ind i en af linjerne. Det får min kode til at gå amok :(

Jeg har prøvet at replace <copy> med "", men kan ikke helt få det til at virke, da den bare fejler på filen.

Kender du et godt trick som kan løse denne?

På forhånd tak
Avatar billede olsensweb.dk Ekspert
16. april 2016 - 10:04 #1
kan du ikke bruge simplexml_load_string istedet for simplexml_load_file ??

hvis du loader den ind som fil først som en string kan du replace som du vil og derefter parse.


load file
http://php.net/manual/en/function.file-get-contents.php
http://php.net/manual/en/simplexml.examples-basic.php
http://php.net/manual/en/function.str-replace.php


så det bliver noget ala dette
pseudo code

$filestr = file_get_contents('http://www.example.com/');
$filestr = str_replace("<copy>, "<****>", $filestr); // hele linjen skulle måske fjernes
$xml = simplexml_load_string($filestr);
Avatar billede apromis Praktikant
16. april 2016 - 10:25 #2
Tusind tak :D
DEt var satme sejt af dig!

Kan du svare?
Avatar billede olsensweb.dk Ekspert
16. april 2016 - 12:31 #3
får du her

du skal vel også replace slut taget!
(utested)

$filestr = file_get_contents('http://www.example.com/');
$filestr = str_replace("<copy>, "<****>", $filestr);
$filestr = str_replace("</copy>, "</****>", $filestr);
$xml = simplexml_load_string($filestr);


kunne også være man skulle bruge strtr istedet for replace når det er flere nøgler der skal erstattes
(utested)

$filestr = file_get_contents('http://www.example.com/');
$array = array(
'<copy>'=>'<****>',
'</copy>'=>'</****>'
);
strtr($filestr, $array);
$xml = simplexml_load_string($filestr);

http://php.net/manual/en/function.strtr.php
Avatar billede apromis Praktikant
16. april 2016 - 13:34 #4
Endnu engang tak :)
Avatar billede phpnoob Novice
16. april 2016 - 15:18 #5
Bare lige noget der relatere til dette emne så kræver det at du har slået denne allow til på din server ellers kan du ikke bruge denne function.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester