PDA

نسخه کامل مشاهده نسخه کامل : گرفتن اطلاعات از xml



tehro0n
26-07-2010, 21:44
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدبرای مثال این اطلاعات xml ماست. می خواهم URL را که برابر blogfa.com می
باشد بگیرم.

یا اینکه اگر کسی می دونه که چطور میشه ساب دومین رو به دومین تبدیل کرد هم کارم راه می افته
برای حذف //:http و .www از دو کد زیر استفاده می کنیم. حال برای حذف ساب چه کنیم؟


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

mamadfelfel1988
28-07-2010, 01:47
روش simpleXml خیلی سادس یک سرچ کنی یاد میگیری
واسه سوال دومت من دقیقا متوجه نشدم

tehro0n
28-07-2010, 14:09
روش simpleXml خیلی سادس یک سرچ کنی یاد میگیری
واسه سوال دومت من دقیقا متوجه نشدم

به این شکلی که مطرح کردم چیزی نبود، اما 1 عضوی رو می دونم چطور بگیرم
با این حال ممنون

tehro0n
28-07-2010, 14:20
اولی که به این شکل پیدا نمیشه که URL و TEXT در یک جا باشند، تمامی مثال ها یک متغیر وجود داره که از دستور forech هم استفاده می کنند و من این را نمی خوام!

دومی هم در کل گفتم شما چیزی مثل temp.blogfa.com دارید حالا می خواهید temp را جدا کنید و تنها blogfa.com باشه
حالا اگه هم لینکی بدون ساب دومین بود نیز باز همان دومین را نمایش بده

neopersia
28-07-2010, 20:07
چرا نمیخواید از foreach استفاده کنید؟ خوب بالاخره باید روی آیتمهای شیء XML لوپ کنید تا همه نودها رو بگیرید یا نه؟!
باید با همون simplexml که دوستمون گفت روی آیتمها لوپ کنید بعد صفتهای URL و TEXT رو ازشون بگیرید

برای حذف http و www هم اضافه کاری کردید! با یک رجکس معمولی میشه دامنه رو از توی آدرس در آورد دیگه نیاز نیست دوباره با str_replace اینا رو حذف کرد.

قسمت اولش رو که گفتید نمیخواید لوپ بشه بیشتر توضیح بدید دلیلش چیه. جواب قسمت دوم هم این کد هست:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

با این آدرسها هم تست کردم جواب میده:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

قاعدتاً باید با همه نوع آدرسی کار کنه

tehro0n
28-07-2010, 21:15
چرا نمیخواید از foreach استفاده کنید؟ خوب بالاخره باید روی آیتمهای شیء XML لوپ کنید تا همه نودها رو بگیرید یا نه؟!
باید با همون simplexml که دوستمون گفت روی آیتمها لوپ کنید بعد صفتهای URL و TEXT رو ازشون بگیرید

برای حذف http و www هم اضافه کاری کردید! با یک رجکس معمولی میشه دامنه رو از توی آدرس در آورد دیگه نیاز نیست دوباره با str_replace اینا رو حذف کرد.

قسمت اولش رو که گفتید نمیخواید لوپ بشه بیشتر توضیح بدید دلیلش چیه. جواب قسمت دوم هم این کد هست:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

با این آدرسها هم تست کردم جواب میده:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

قاعدتاً باید با همه نوع آدرسی کار کنه
کار من راه افتاد ممنون
برای این نمی خواستم forech استفاده بشه چون اطلاعات سایت زیاد بود و تنها این قسمت نمونه که گذاشتم نبود
اگه تنها url بود می تونستم از طریق children به دامین دسترسی پیدا کنم اما اینجا که 2تاس به مشکل برخوردم
با این حال ممنون

یک سئوال دیگه هم دارم که مربوط به ورودی های جاواس. اون رو جای دیگه مطرح می کنم اگه تونستید آن را نیز پاسخ دهید

neopersia
28-07-2010, 22:07
توی پترن قبلی یک نکته رو در نظر نگرفته بودم. اگر ساب دومین چند سطحی باشه نام هاست ساب دومین طح بالاترش رو مچ میکنه به جای اینکه فقط دامنه اصلی رو پیدا کنه.
این کد جدید هست (فرقش فقط یه دونه علامت سواله):

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

الان دیگه با این دامنه هم مچ میشه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در مورد لوپ هم درسته اگر حجم فایل زیاد باشه حافظه زیادی اشغال میکنه و پردازشش هم سنگینتر میشه. اما در صورتی استفاده نکردن از لوپ کمک میکنه که اصلاً از simplexml استفاده نکنید. چون حافظه همون موقع که simplexml لود میشه اشغال میشه و لوپ به تنهایی آنچنان تأثیری نداره