/ wstawianie / xml w określonym punkcie pliku xml - php, domdocument

wstawienie xml w określonym punkcie pliku xml - php, domdocument

Chcę wstawić następujący wiersz do mojego pliku xml:

<?xml-stylesheet type="text/xsl" href="http://example.com/livesearch.xsl"?>

natychmiast po:

<?xml version="1.0" encoding="utf-8" ?>

w moim pliku xml.

Obecnie używam tej (okropnej) metody:

$G["xml"] = str_replace("<?xml version="1.0" encoding="utf-8" ?>", "<?xml version="1.0" encoding="utf-8" ?><?xml-stylesheet type="text/xsl" href="http://example.com/livesearch.xsl"?>", $G["xml"]);

Jak to zrobić w DomDocument w php?

Dzięki

Odpowiedzi:

5 dla odpowiedzi № 1

Linia, którą chcesz wstawić, nazywa się a instrukcja przetwarzania. Możesz dodać go za pomocą DOM w następujący sposób:

$dom = new DOMDocument();
$dom->loadXml("<?xml version="1.0" encoding="utf-8" ?><root/>");

$dom->insertBefore(
$dom->createProcessingInstruction(
"xml-stylesheet",
"type="text/xsl" href="http://example.com/livesearch.xsl""
),
$dom->documentElement
);
echo $dom->saveXml();

Wydajność:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="http://example.com/livesearch.xsl"?>
<root/>

Z boku może być źle używany str_replace ale jeśli to działa… to działa.