استفاده از xml

shirini_forush

Well-Known Member
کاربر محترم baran سوال کرده بودن درباره xml. گفتم اینجا بذارم که بقیه هم در صورت نیاز استفاده کنن.
فرض کنید ما یه فایل xml داریم که توش یه سری اطلاعات ه. به عنوان مثال یه فایل به نام data.xml و محتوای زیر:

HTML:
<?xml version="1.0" encoding="UTF-8"?>
<data count=1>
	<item title="Salam">
		salam azizam chetori?

		omidvaram harja hasti khoob o khosh o salamat bashi
		bishtar az in mozahemet nemisham

		qorbanet
		kachal e moo ferferi
	</item>
	<item title="Divoone">
		salam divoone

		chera be man sar nemizani?
		nabayad la aqal ye zang bezani begi chete?
		bishoor!

		dige halam azat be ham mikhore.
		aslan dige nemikham bebinamet
		agar ye bar, faqat ye bar dige esme mano biari...
		ba dafe ye qabli mishe do bar!
		be har hal hich chiz beyne man o to namoonde

		agar khasti rabetamoon edame peydakone...
		si hezar toman beriz be in shomare hesab:
		200-56-87-wx-350
		dige ham be man zang nazan

		too roohet
		kachal e moo ferferi
	</item>
	<item title="khodahafez">
		kachal e moo ferferi
		qorbanet
		khodahafez azize delam
		omidvaram shad bashi

		chize dige ii namoonde ke begam
		va akharin chizi ke midoonam in ke hasan rafte shahreshoon
		yeki dige ham in ke man sale dige mikham beram kelas e dovvom
		ye khabar e mohem. va oon in ke dooset daram

		vase hamin in name ro neveshtam
		chan d ta khabar hast ke bayad behet midadam
		khoobi?
		salam azizam
	</item>
</data>

برای لود xml توی فلش از این روش استفاده میشه:

PHP:
var myXML:XML = new XML();
//moteqayer baraye bargozari e xml tarif shod
myXML.ignoreWhite = true;
//baraye nadide gereftan e fazahaye khali e ezafe too file e xml
myXML.load("data.xml");
//ettelaat az data.xml to motegayer load shod
myXML.onLoad = function(success:Boolean)
{
	if(success)
	{
		for(i=0;i<=myXML.firstChild.childNodes.length;i++)
		{
			//kari ke bayad be ezaye har item anjam beshe
		}
	}
	else
	{
		//namayesh e peygam e khata
	}
};

برای دسترسی به هرآیتم هم میتونی با ایندکسش کار کنی (ایندکس اولی 0 و به ترتیب افزایش پیدا میکنه):

PHP:
//agar too ye halge (for) dari kar mikoni mitooni az moteqayer e halqe (masalan i) be jaye Index estefade koni
myXML.firstChild.childNodes[i].attributes.title;
//baraye dastresi be attribute e Title
myXML.firstChild.childNodes[i].value;
//baraye dastresi be mohtavaye node (gereh - item)

برای اختصاص دادن متن به تکست داینامیک هم از خصوصیت text استفاده میکنی. مثلا:

PHP:
myText.text = myXML.firstChild.childNodes[1].attributes.title;

برای اسکرول شدن متن هم. همون موقعی که متن داینامیک رو ساختی یه کامپوننت scrollbar بکش روش. به طور اوتوماتیک به اون تکست داینامیک اختصاص پیدا میکنه.
و اگر نیاز به اسکرول داشته باشه فعال میشه.
 

masoudies

Member
من این کدها رو توی فریم اولم کپی کردم و خطای کدی نداره ولی وقتی swf رو اجرا میکنم میگه که یه کد استفاده کردی که سرعت رو پایین میاره و نمیتونه فایل رو لود کنه. مشکلم چیه؟ فکر کنم فایل XML که نوشتید مشکل داره سفیر

یه سوال: این روشی که شما استفاده کردید چه فرقی داره با استفاده از کامپوننت XMLConnector که توی خود فلش هست؟
 

shirini_forush

Well-Known Member
نه اون error ی که شما میگی برای اینه که افتاده تو حلقه ی بینهایت... باید دستورات حلقه رو چک کنی.
در مورد XMLConnector و تمام کامپوننت های فلش. اونا فقط مووی کلیپ هایی هستن که یه سری کد آماده دارن.
و از همین اکشن ها استفاده میکنن. مزیتشون سادگی استفادشونه. ولی اگر توان ساخت چیزی رو دارید... اکیدا توصیه میشه که از component های خود فلش استفاده نکنید.
 

masoudies

Member
ممنون متوجه شدم

فایل XML که شما نوشتی بازبرای من لود نشد ولی من یه تگ info اضافه کردم اولش جواب داد. بعد میخوام بدونم اون گزینه count=1 که توی تگ دیتا نوشته بودی چیکار میکنه؟

من این فایل ها گذاشتم ببینید مشکلش چیه که جواب نمیده و توی تکست لودش نمیکنه.
 

پیوست ها

  • XML.rar
    117.1 کیلوبایت · بازدیدها: 23

shirini_forush

Well-Known Member
اون Count خیلی مهم نیست. اول تو ذهنم بود که جای length نود ها از اون استفاده کنم.
یادم رفت استفاده کنم. و یادم رفت پاک کنم.
فایل رو dl کردم. الان به فلش دسترسی ندارم. به محض دسترسی جواب میدم.
 

masoudies

Member
آها بله من اون تگ دیتا رو پاک کردم با count حالا جواب داد ولی اینطوری که من نوشتم فقط خطی که i اندازش هست رو نشون میده. اگه توی دستور آخر i=1 باشه کلمه "divone" و اگه برابر i fhai کلمه سلام رو نشون میده.

احتمالا یه جایی اشتباه کردم.
 

mehdikavianirad

New Member
اقا ایا این روش شما رو متن فارسی جواب میده و ایا فونت متن دینامیک رو هم میشه عوض کرد با این کار من
هم از xml استفاده کردم
ولی مشکلم اینه که فونت متن دینامیک رو نمیتونم عوض کنم
 
ضمنا آيا ميشه متون html رو هم تبديل به xml كنيم وهمراه با عكس به روش شما لود كنيم؟
البتته متون فارسي هستند
 
نه من اينجا نپرسيدم يك جاي ديگه بود كه پرسيدم دزد حاضر وبز حاضر!!!
خودت يه بك بزن ببين من مي خوام بدونم html درصورت تبديل به xml چه بلائي سرش مي آد عكسهاش رو ميشه مجددا ديد؟
يا مثل text ميشه؟ من نتونستم كسي تونست
 

mehdikavianirad

New Member
ببينيد
من يه متن ديناميك دارم ميخواهم از يه فايل با همين مشخصات xml متني فارسي رو ازبيرون
بارم توش مشكلي هم ندارم متن مياد وديده ميشه فقط فونتش عوض نميشه و من تو عوض كردن فونتش موندم
با فلش 8 كار ميكنم
 

جدیدترین ارسال ها

بالا