2015-03-30 84 views
1

我嘗試向我的xml文件插入新節點時出現問題。我需要補充:如何在我的xml文件中使用fwrite添加子項

<ul><loc> mylink</ul></loc> 

在我的xml文件中的最後一個節點之前。

我嘗試下面的代碼,但它不工作之前,我插入新的它打破了最後一個節點:

$userfile = "sitemap.xml"; 
$fh = fopen($userfile, 'r+'); 
$addUser = "<url><loc>https://www.example.com/Privacy-Policy</loc></url></urlset> "; 
fseek($fh, -10, SEEK_END); 
fwrite($fh, $addUser); 
fclose($fh); 

這是我的XML文件的一部分:

<urlset > 
    <url> 
     <loc>example.com</loc> 
    </url> 
    <url> 
     <loc>example.com</loc> 
    </url> 
</urlset> 

我的輸出是:

<urlset > 
    <url> 
<loc>example1.com</loc> 
    </url> 
    <url> 
     <loc>example2.com</loc> 
    </ur<url> //<-- See here my xml file broke 
     <loc>example2.com</loc> 
    </url> 
</urlset> 
+0

*這是我的鏈接*鏈接的一部分?檔案?!?哪些代碼?請顯示您的代碼並更具體地說明您的目標是什麼 – Rizier123 2015-03-30 18:00:24

+0

對不起,我已修復:P 您現在可以看到代碼 – badr 2015-03-30 18:01:16

+0

是的,但請添加您現在獲得的輸出以及您期望得到的輸出 – Rizier123 2015-03-30 18:01:43

回答

1

這應該爲你工作:

(這裏我只是用simplexml_load_file()加載xml文件,創建一個SimpleXMLElement()。在此之後,你可以在孩子簡單地添加到根節點)

<?php 

    $xml = simplexml_load_file("file.xml"); 
    $xml = new SimpleXMLElement($xml->asXML()); 

    $urlChild = $xml->addChild("url", ""); 
    $urlChild->addChild("loc", "example2.com"); 

    $xml->asXML("file.xml"); 

?> 

輸入文件:

<urlset > 
    <url> 
     <loc>example.com</loc> 
    </url> 
    <url> 
     <loc>example.com</loc> 
    </url> 
</urlset> 

輸出文件:

<?xml version="1.0"?> 
<urlset> 
    <url> 
     <loc>example.com</loc> 
    </url> 
    <url> 
     <loc>example.com</loc> 
    </url> 
    <url> 
     <loc>example2.com</loc> 
    </url> 
</urlset> 
+0

謝謝你soo yes對我來說是工作的:) – badr 2015-03-30 18:16:42

+0

@ user44444不客氣!享受你的一天:D – Rizier123 2015-03-30 18:17:27

相關問題