2013-02-26 68 views
3

我有一個XML結構,這樣的刪除特定XML子節點:如何根據自己的價值

<document> 
    <sliderimage> 
     <images>click.bmp</images> 
     <images>error_inotherpluginupload.JPG</images> 
     <images>dddd.jpg</images> 
     <images>Sunset123.jpg</images> 
     <images>Water lilies.jpg</images>  
    </sliderimage> 
</document> 

而且我展示這些畫面是這樣的:

This is how I'm showing the images

代碼爲取得圖像,你可以看到這裏:

<?php 
    $usernmeforxml = $_SESSION['username']; 
    $xmlpath = SITE_URL . "xml/" . $usernmeforxml . "/test.xml"; 
    $xml = simplexml_load_string(file_get_contents($xmlpath)); 
    $sliderimagesinner = $xml->sliderimage->images; 
    $imagenum = count($sliderimagesinner); 
?> 
</br> 
<?php 
    for ($i = 0; $i < $imagenum; $i++) 
    { 
?> 
    <a class="thumbnail" href="#thumb"> 
     <img src="../slider_images/<?php 
      echo $sliderimagesinner[$i]; 
     ?>" width="120" height="70" /> 
     <span> 
      <img src="../slider_images/<?php 
       echo $sliderimagesinner[$i]; 
      ?>" width="500" height="350" /> 
     </span> 
    </a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<?php 
    } 
?> 

現在我想刪除圖片的廣告在我的圖像上點擊「刪除」按鈕。點擊時,應從上述XML文件中刪除該圖像節點。

所有的東西都是動態的,所以如果有人能幫我解決這個問題,那將會非常有幫助。

+0

不是一個真正的答案,因爲我不知道如何解決這個問題,但是如果我遇到了這個問題,我會開始在PHP的DOM類中尋找解決方案,其中包括一個DOMXQuery類。應該可以使用XQuery來查找滿足特定條件的節點 – GordonM 2013-02-26 07:17:23

+1

是否可以更改結構以爲每個圖像添加id屬性?這將使刪除操作更不明確。 – 2013-02-26 08:02:52

+0

@GordonM沒有'DOMXQuery',但'DOMXPath'就夠了。 – 2013-02-26 09:15:49

回答

3
$usernmeforxml=$_SESSION['username']; 
$xmlpath=SITE_URL."xml/".$usernmeforxml."/test.xml"; 
$xml = simplexml_load_file($xmlpath); 
if($_GET['remove'] == 'true') { 
    $myValue = $_GET['file']; 
    $xel_array = $xml->xpath("//images[text()='" . $myValue . "']"); 
    //edited - forgot to double [0] 
    unset($xel_array[0][0]); 
    file_put_contents($xmlpath, $xml->asXML()); 
} 

和像

<a href="_your_page.php?remove=true&file=your_file_name">remove</a> 

鏈接應該做的伎倆。

+0

就像我用我的查詢在functions.php,所以在這裏在href我必須把這樣的東西 remove 2013-02-26 07:43:07

+0

您可以將代碼添加到當前文件的頂部並用slider.php替換your_page.php或者你的文件被調用的名稱,your_file_name替換爲xml的名字......例如:Water lilies.jpg。由於您的文件可能包含需要轉義的字符,因此您可能需要使用urlencode和urldecode。 – user1452962 2013-02-26 07:54:27

+0

非常感謝好友,它工作。 – 2013-02-26 09:11:31