Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > อยากทราบวิธีการลบ แท็ก xml อ่ะค่ะ คือต้องการลบ ส่วนของ item ออกค่ะ ทำไงอ่ะค่ะ (มีโค้ดด้านในค่ะ)



 

อยากทราบวิธีการลบ แท็ก xml อ่ะค่ะ คือต้องการลบ ส่วนของ item ออกค่ะ ทำไงอ่ะค่ะ (มีโค้ดด้านในค่ะ)

 



Topic : 078125



โพสกระทู้ ( 14 )
บทความ ( 0 )



สถานะออฟไลน์




อยากทราบวิธีการลบ แท็ก xml อ่ะค่ะ คือต้องการลบ ส่วนของ item ออกค่ะ ทำไงอ่ะค่ะ ที่หนูทำอยู่คือลบไฟล์แบบ radio box เพื่อเลือกลบแท็กค่ะประมาณนี้ค่ะ

ไฟล์ sample.xml

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>(T)คณะวิศวกรรมฯ</title>
<description>This is an example of a generated RSS feed.</description>
<link>#</link>
<item>
<title>detail1</title>
<description>testdetail1</description>
<link>http://127.0.0.1:81/rmutl/techer/savefiles/wallpaper-744773.jpg</link>
</item>
<item>
<title>detail2</title>
<description>testdetail2</description>
<link>http://127.0.0.1:81/rmutl/techer/savefiles/wallpaper-744773.jpg</link>
</item>
</channel>
</rss>

ไฟล์ delxml.php เป็นส่วนที่ใช้เลือก Radio box ใช้ลบค่ะ ในส่วนนี้ out put คือ


O detail1testdetail1http://127.0.0.1:81/rmutl/techer/savefiles/wallpaper-744773.jpg
O detail2testdetail2http://127.0.0.1:81/rmutl/techer/savefiles/wallpaper-744773.jpg
--button submit--

โค้ด ไฟล์ delxml.php
Code (PHP)
<?php
    $xmldoc = new DOMDocument();
    $xmldoc->load('simple.xml', LIBXML_NOBLANKS);
    $data1 = $xmldoc->getElementsByTagName("item");
    $count = 0;

    $activities = $xmldoc->firstChild->firstChild;
  
        echo '<form name=\'erase\' action=\'delete.php\' method=\'post\'>' . "\n";
      foreach($data1 as $item)
{
			$names = $item->getElementsByTagName( "title" );
            echo "    <input type=\"checkbox\" name=\"activity[]\" value=\"$count\"/>";
            echo ' '.$item->textContent.'<br/>'."\n";
            $item = $item->nextSibling;
			$count++;
        }
        echo '    <input type=\'submit\' value=\'erase selected\'>';
        echo '</form>';
    
?>



อีกส่วนทำการลบไฟล์ ที่รับค่า Array จากหน้า delxml.php
ไฟล์ delete.php

Code (PHP)
<?php 
    $atvID = $_POST['activity'];
    $xmldoc = new DOMDocument();
    $xmldoc->load('sample.xml', LIBXML_NOBLANKS);
	
foreach($data1 as $item){
   $data1 = $xmldoc->getElementsByTagName("item");
	foreach($atvID as $id){
		$names = $item->getElementsByTagName("title");
		//$delnode = $xpath->query('/rss[0]/channel/item');
       // $delnode = $xmldoc->getElementsByTagName('item');
	   $item->firstChild->removeChild($names->item($id));
	
        //$xmldoc->firstChild->removeChild($delnode->item($id));
		
}
}
    $xmldoc->save('simple.xml');
?>


ปัญหาตอนนี้คือลบไม่ได้เลยค่ะ มันบอก Error ที่ $item->firstChild->removeChild($names->item($id)); อ่ะค่ะ
Warning: Invalid argument supplied for foreach() in C:\AppServ\www\rmutl\techer\delxml.php on line 7

ไม่ทราบว่าพอจะแก้ได้ใหมค่ะ มันต้องเข้า ผ่าน rss/chanal/item ก่อนหรือเปล่าถึงจะลบได้อ่ะค่ะ ผิดตรงใหนหรือเปล่า แก้มาหลายวันแล้วค่ะ ขอบคุณค่ะ



Tag : PHP, MySQL









ประวัติการแก้ไข
2012-05-08 05:27:56
2012-05-08 05:29:45
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-05-08 05:25:43 By : terriyakiboyz_zen View : 1277 Reply : 1
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ดูตัวอย่างนี้ครับ

Code (XML)
<?xml version="1.0" encoding="utf-8"?>
<messages>
    <message time="1248083538">
        <name>Ben</name>
        <email>Ben's Email</email>
        <msg>Bens message</msg>
    </message>
    <message time="1248083838">
        <name>John Smith</name>
        <email>[email protected]</email>
        <msg>Can you do this for me?</msg>
    </message>
</messages>


Code (PHP)
<?php

$doc = new DOMDocument; 
$doc->load('theFile.xml');

$thedocument = $doc->documentElement;

//this gives you a list of the messages
$list = $thedocument->getElementsByTagName('message');

//figure out which ones you want -- assign it to a variable (ie: $nodeToRemove )
$nodeToRemove = null;
foreach ($list as $domElement){
  $attrValue = $domElement->getAttribute('time');
  if ($attrValue == 'VALUEYOUCAREABOUT') {
    $nodeToRemove = $domElement; //will only remember last one- but this is just an example :)
  }
}

//Now remove it.
if ($nodeToRemove != null)
$thedocument->removeChild($nodeToRemove);

echo $doc->saveXML(); 
?>


http://stackoverflow.com/questions/1153697/php-delete-xml-element
http://www.phpeveryday.com/articles/PHP-XML-Removing-Node-P415.html







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-08 06:20:36 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อยากทราบวิธีการลบ แท็ก xml อ่ะค่ะ คือต้องการลบ ส่วนของ item ออกค่ะ ทำไงอ่ะค่ะ (มีโค้ดด้านในค่ะ)
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่