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 № 1Linia, 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.