insert in xml

benyamin_pc

Well-Known Member
سلام
با اکشن 3 میشه ی نود به شکل زیر به xml اضافه کرد؟
اگر دو تا نود به اسمه A داشته باشیم که توی A اولی 2 تا نود داشته باشیم به اسمه B و بخواهیم یک نود داخله B اولی اضافه کنیم به طوری که با دستور addChildafter. نیایم بنویسیم A.B[0] بلکه چیزی شبیه به یک پیمایش bfs از xml بهش بدیم و بعده اون اضافه کنه . یعنی ABBA پیمایش bfs کل xml ما هست که در ایندکس 2 باید نوده جدید درج شه که میشه
ABCBA
یعنی کار با xml به شکل نا متقارن
تنها کاری که تونستم کنم کار با رشته ها بود اگه کسی ایده دیگه ای داره بگه
 

++Hadi++

Active Member
بله...
اول ایکسمل رو لود کرده سپی تو یه متغیر ایکسمل می ریزی بعد با متد هایی که تو خود ایکسمل هستند مثل appendChild h اون child یا همون node مد نظر رو در جای مناسبش قرار می دی و سپس با کلاس file reference که از کلاسهای داخل اکشن 3 و فلش هست ، می تونی اون شی ایکسمل رو با فرمت ایکسمل تو جایی ذخیره کنی.
 

benyamin_pc

Well-Known Member
مگه متد appendChild به انتهای xml اضافه نمیکنه؟ من می خوام یه ایندکس به شکل پیمایش bfs تا محل اضافه بهش بدمو اونجا اضافش کنما . پست اول کامل توضیح دادم
 

JavidFlasher

کاربر فعال
من درست متوجه نشدم ولی شاید منظورتوت اینجوری باشه .
bfsچیه ؟
PHP:
var xml:XML=<foo>
<A>
<B>b0</B>
<B>b1</B>
</A>
<A></A>
</foo>;
xml.A[0].B[0].appendChild(<g>new Parm</g>)
trace(xml)
 

benyamin_pc

Well-Known Member
نه دیگه تو پست 1 گفتم اینجوری نه . bfs پیمایش سطحی رو می گن و dfs پیمایش عمقی
الان شما در نظر بگیرین که 2 تا نود A داریم که تو A اولی 2 تا B هست . حالا این bfs میشه ABBA و dfs میشه AABB حالا توی bfs ایندکس 0 برابر مقدار A هست و ایندکس 1 مقدار B و 2 مقدار B و 3 مقدار A حالا اگه بخواهیم نود C را بعد ایندکی 1 درج کنیم میشه ABCBA
و میخواهیم فقط به درج یک عدد اون نود در جایگاه ویژه خودش درج شه . حالا این به چه درد میخوره : خوبیش اینه که وقتی xml نامتقارن هست و ضمنا میخوایم به شکل داینامیک به xml نود اضافه کنیم دیگه نمیشه از قبل بگیم به کجاش اضافه کن که بنویسیم
کد:
 xml.A[0].B[0].appendChild(<g>new Parm</g>)
چون هرجائی امکان داره درج صورت بگیره و با هر سطحی پس a[0]b[0]c[0]d[0]e[5]f[2] هم میتونه باشه و a[4]b8]c3] هم هست اما اونجوری فقط با پیداکردن bfs از xml میشه تو ایندکسی که می خوایم درج کنیم مثلا 10 بجای رشته بالائی و مثلا 30 بجای رشته دومی بالائی
اما تو فلش متاسفانه دستوری نیست که مثلinsertchildafter باشه اما بجای اون رشته بیاد ایندکس bfs بگیره و این بسیار تو کارای این چنینی مهمه و مجبور شدم خودم ی پارسر برای این کار که میاد رشترو پردازش میکنه بنویسم ولی سرعتش خیلی پائینه و هربار که نودی اضافه میشه چون حجمه رشته مورد پردازش بیشتر میشه سرعتش شدیدا پائین تر هم میاد
 

benyamin_pc

Well-Known Member
کسی ایده ای نداره؟چقد بخشه as3 ساکته قدیما بخشه فلش بیا برویی داشت!!
 

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

بالا