• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Mit SimpleXml einen String laden, der keinen Root besitzt

CGollhardt

Mitglied
Hallo,

ich muss an das Attribut xlink:href herankommen. Allerdings will das Xml (Kann ich nicht ändern) nicht mit SimpleXml laden. Ich erhalte keine Fehlermeldung, aber auch keine Ausgabe. Wenn ich einnen Root drum herum mache, funktionierts einwandfrei.

Habe mir schon gedacht, dann erkenne ich vielleicht mit Regex die Reference und setze dann einen Root darum, aber ich weiß nicht wie der Suchstring lauten könnte. Gibts da eine andere Möglichkeit, oder hat jemand einen entsrpechenden Regex?

PHP:
<?php
$test = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<reference xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://api.spreadshirt.net" xlink:href="https://697348.spreadshirt.de/en-de/shop/basket/cart/basket/4398c19c-64f5-4b9b-8a75-c4402520b49f" />';
print_r(simplexml_load_string($test));
?>

Edit:
Ich habe jetzt vorrübergehend eine unschöne Lößung implementiert:
PHP:
<?php
$test = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<reference xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://api.spreadshirt.net" xlink:href="https://697348.spreadshirt.de/en-de/shop/basket/cart/basket/4398c19c-64f5-4b9b-8a75-c4402520b49f" />';
$splittedXml = split('>', $test, 2);
$test = $splittedXml[0] . '><root>' . $splittedXml[1] . '</root>';
unset ($splittedXml);
print_r(simplexml_load_string($test));
?>
Auf dauer möchte ich es jedoch eleganter machen. Deswegen würde ich mich trotzdem über Antworten noch freuen.
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben