I'm looking for a 'smart way' of decoding multiple XML tags inside a string, i have the following function:
function b($params) { $xmldata = '<?xml version="1.0" encoding="UTF-8" ?><root>' . html_entity_decode($params['data']) . '</root>'; $lang = ucfirst(strtolower($params['lang'])); if (simplexml_load_string($xmldata) === FALSE) { return $params['data']; } else { $langxmlobj = new SimpleXMLElement($xmldata); if ($langxmlobj -> $lang) { return $langxmlobj -> $lang; } else { return $params['data']; } } } And trying out
$params['data'] = '<French>Service DNS</French><English>DNS Service</English> - <French>DNS Gratuit</French><English>Free DNS</English>'; $params['lang'] = 'French'; $a = b($params); print_r($a); But outputs:
Service DNS And I want it to basically output every tags, so result should be :
Service DNS - DNS Gratuit Pulling my hairs out. Any quick help or directions would be appreciated.
Edit: Refine needs.
Seems that I wasn't clear enough; so let me show another example
If i have the following string as input :
The <French>Chat</French><English>Cat</English> is very happy to stay on stackoverflow because it makes him <French>Heureux</French><English>Happy</English> to know that it is the best <French>Endroit</French><English>Place</English> to find good people with good <French>Réponses</French><English>Answers</English>. So if i'd run function with 'French' it will return :
The Chat is very happy to stay on stackoverflow because it makes him Heureux to know that it is the best Endroit to find good people with good Réponses. And with 'English' :
The Cat is very happy to stay on stackoverflow because it makes him Happy to know that it is the best Place to find good people with good Answers. Hope it's more clear now.