PDA

View Full Version : سوال: ویرایش اطلاعات در یک فایل xml



xoogle.ir
شنبه 17 اردیبهشت 1390, 10:05 صبح
فرض کنید که یک فایل xml با این محتوا داریم :

<?xml version="1.0" encoding="utf-8"?>
<set>
<layout>blue</layout>
<down>false</down>
</set>


من کدی نوشتم به این شکل که یک المنت layout دیگه با مقدار جدید به فایل اضافه میکنه :


$xml = simplexml_load_file(ROOT_ADDR.PATH.'/sample.xml');
$sxe = new SimpleXMLElement($xml->asXML());

$sxe->addChild('layout', $newTemplate);
$sxe->asXML(ROOT_ADDR.PATH.'/sample.xml');

اما ایراد این برنامه اینه که بعد از اجرا دو تا المنت layout در فایل xml داریم که دو مقدار متفاوت دارن که خب همون طوری که میدونید این استاندارد نیست. دیروز کلی سرچ کردم و وقت گذاشتم که همین المنت فعلی رو بتونم ویرایش کنم و مقدار جدید بهش بدم ولی نشد :ناراحت:
کسی از دوستان راهی برای ویرایش مقدار المنت قبلی میدونه یا اینکه بتونم المنت قبلی رو حذف کنم و بعدش المنت جدید رو به فایل اضافه کنم.

Keramatifar
شنبه 17 اردیبهشت 1390, 17:07 عصر
دوست عزیز
تصور کن یک فایل xml به نام note.xml با این محتوا داریم:

<?xml version="1.0" encoding="ISO-8859-1"?>
<PersonList>
<Person>
<Name>Sonu Kapoor</Name>
<Age>24</Age>
<Gender>M</Gender>
<PostalCode>54879</PostalCode>
</Person>
<Person>
<Name>Jasmin</Name>
<Age>20</Age>
<Gender>F</Gender>
<PostalCode>78745</PostalCode>
</Person>
<Person>
<Name>Josef</Name>
<Age>232</Age>
<Gender>F</Gender>
<PostalCode>53454</PostalCode>
</Person>
</PersonList>

حالا می خواهیم المنت person که دارای name برابر Jasmin می باشد را تغییر دهیم و در همان فایل ذخیره کنیم

$xml = simplexml_load_file('note.xml');
$obj = $xml->xpath('//Person[Name="Jasmin"]');
$obj[0]->Age = 50;
$obj[0]->Gender = 'F';
$xml->asXml('note.xml');

xoogle.ir
یک شنبه 18 اردیبهشت 1390, 00:07 صبح
تشکر رو کافی ندیدم :قلب: مشکلم حل شد.