2011-09-06 118 views
3

的具體點我想插入下面​​一行到我的XML文件:XML插入在XML文件

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

後:

<?xml version="1.0" encoding="UTF-8" ?> 
在我的xml文件

目前我使用這個(可怕的)方法:

$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']); 

什麼是PHP中的DomDocument這樣做的正確方法?

感謝

回答

5

要插入的行稱爲processing instruction。您可以使用DOM這樣添加:

$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(); 

輸出:

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

在旁註,它可能會感覺不對勁使用str_replace,但如果它工作...它的工作原理。