/
  • مشکل با یک کلاس xml2array

  • صفحه‌ها (2):
  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی مشکل با یک کلاس xml2array
    نویسنده پیام
    parsbin آفلاین
    امیرحسین تیموری
    ***

    ارسال‌ها: 120
    تاریخ عضویت: ۱۳۸۸ آبان ۲۲
    اعتبار: 0
    تشکرها : 26
    ( 7 تشکر در 7 ارسال )
    ارسال: #1
    مشکل با یک کلاس xml2array
    سلام
    یک کلاس جالب پیدا کردم برای تبدیل xml to array و برعکسش.در این آدرس.
    مشکلی که باهاش دارم اینه که باید بدونیم یک رکورد داریم یا بیشتر از یک رکورد و در آدرس دهی اون رو رعایت کنیم.
    یعنی اگر در xml داشته باشیم
    کد PHP:
    <root>
    <
    user>
    value
    </user>
    </
    root
    نمیشه بصورت

    کد PHP:
    [root][user][0][value
    مقدارش رو درآورد.و باید بصورت
    کد PHP:
    [root][user][value
    آدرس دهیش کرد. و همین طور برعکس.
    اگر ما چند تا user مثلا داشته باشیم باید بصورت
    [root][user][0][value]
    آدرس دهیش کنیم.بعبارتی برای یک رکورد [شماره تگ] کار نمیکنه.
    شاید به نظر ساده بیاد ولی روی برنامه ای که دارم کار میکنم و کلا بر پایه xml دارم مینویسم خیلی کار رو مشکل کرده.
    مشکل رو چطوری میشه حل کرد؟
    آیا کلاسی سراغ دارین که بدون مشکل کار xml ro array و array to xml رو انجام بده؟
    __________________________________________________________________________
    وب سایت
    آموزش VOIP - Asterisk - Freeswitch
    (آخرین ویرایش در این ارسال: ۱۳۸۸ آذر ۲۸ ۰۵:۵۹ عصر، توسط parsbin.)
    ۱۳۸۸ آذر ۲۸ ۰۵:۵۶ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    oia آفلاین
    محمد ثانی
    *****

    ارسال‌ها: 2,012
    تاریخ عضویت: ۱۳۸۷ آذر ۲۶
    اعتبار: 66
    تشکرها : 2330
    ( 2091 تشکر در 1290 ارسال )
    ارسال: #2
    RE: مشکل با یک کلاس xml2array
    ظاهرا شما دارین اشتباه می کنید
    مثلا برای دست رسی به این value باید از
    کد PHP:
    ['root']['_c']['user']['_v'
    و اگه چند تگ user داشته باشی می تونی از
    کد PHP:
    ['root']['_c']['user'][0]['_v'
    استفاده کنی که با تغییر عدد صفر به تگ های دیگه می ری
    ۱۳۸۸ آذر ۲۸ ۰۶:۳۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    parsbin آفلاین
    امیرحسین تیموری
    ***

    ارسال‌ها: 120
    تاریخ عضویت: ۱۳۸۸ آبان ۲۲
    اعتبار: 0
    تشکرها : 26
    ( 7 تشکر در 7 ارسال )
    ارسال: #3
    RE: مشکل با یک کلاس xml2array
    اونی که نوشتم مثال بود
    بله شکل درستش اینه
    ولی میخواستم بدونم راهی نیست تا از دست این آدرس دادن بصورت [0] و یا چیزای دیگه راحت شیم؟
    مشکل اینه که اگر ندونیم یک تگ داریم یا بیشتر از یک تگ باید دو جور کد نوشته بشه.یکی با [آدرس تگ] یکی هم بدون این.
    حالا فرض کنین صد جور تگ داریم و نمیدونیم چند بار تکرار شده.چه فاجعه ای از لحاظ کدنویسی پیش میاد! :|
    نمیدونم تونستم منظورم رو برسونم یا نه.
    در حالت عادی فکر میکنم باید جوری کلاس رو مینوشتن که با [0] تگ شکاره یک رو نمایش بده چه یک بار اون تگ تکرار شده باشه چه جند بار.ولی این طور نیست.برای موقعی مه تنها یکبار تکرار شده شکل کدنویسی باید فرق کنه.
    راهی برای تصحیحش به نظرتون نمیرسه؟
    __________________________________________________________________________
    وب سایت
    آموزش VOIP - Asterisk - Freeswitch
    ۱۳۸۸ آذر ۲۸ ۰۷:۲۶ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    oia آفلاین
    محمد ثانی
    *****

    ارسال‌ها: 2,012
    تاریخ عضویت: ۱۳۸۷ آذر ۲۶
    اعتبار: 66
    تشکرها : 2330
    ( 2091 تشکر در 1290 ارسال )
    ارسال: #4
    RE: مشکل با یک کلاس xml2array
    بنظرم نیازی نیست که این طور عمل بشه!
    در واقع هیچ فاجعه ایی در کار نیست
    شما یه XML می دید و به صورتarray می گیرید. با سرچ توی array می تونید محتواش روهم بفهمید. یا XML رومی دونید وظبق XML و از array استفاده می کنید یا XML رو نمی شناسید و با کنترل از array استفاده میکنید
    ---
    می تونید بگید که کجا از این کد استفاده کردید تا شاید اینطور بشه سوتفام رو رفع کرد Wink
    ۱۳۸۸ آذر ۲۸ ۰۷:۴۲ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    parsbin آفلاین
    امیرحسین تیموری
    ***

    ارسال‌ها: 120
    تاریخ عضویت: ۱۳۸۸ آبان ۲۲
    اعتبار: 0
    تشکرها : 26
    ( 7 تشکر در 7 ارسال )
    ارسال: #5
    RE: مشکل با یک کلاس xml2array
    خوب ببینین
    ما مثلا اگر در xml داشته باشیم
    کد PHP:
    <test>
    value
    </test
    و ندونیم یک دونه test داریم یا چند تا.
    برای در آوردن مقدار این تگ باید یک بار بنویسیم
    کد PHP:
    echo $xml [test][_v
    و یک بار هم بنویسیم
    کد PHP:
    echo $xml [test][0][_v
    اگر یک دونه تگ test داشته باشیم کد دوم کار نمیکنه و اگر بیش از یک دونه داشته باشیم کد اول.
    در نتیجه اگر ندونیم چند بار از این تکرار شده برای هر تگ باید هر دو تا کد نوشته بشه و اونجاست که فاجعه پیش میاد Big Grin
    __________________________________________________________________________
    وب سایت
    آموزش VOIP - Asterisk - Freeswitch
    (آخرین ویرایش در این ارسال: ۱۳۸۸ آذر ۲۸ ۰۸:۱۶ عصر، توسط parsbin.)
    ۱۳۸۸ آذر ۲۸ ۰۸:۱۴ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    oia آفلاین
    محمد ثانی
    *****

    ارسال‌ها: 2,012
    تاریخ عضویت: ۱۳۸۷ آذر ۲۶
    اعتبار: 66
    تشکرها : 2330
    ( 2091 تشکر در 1290 ارسال )
    ارسال: #6
    RE: مشکل با یک کلاس xml2array
    خب کنترل کنید که کدوم حالت اتفاق افتاده
    مثلا:
    کد PHP:
    if(isset($xml[test][_v]))
        echo 
    $xml[test][_v];
    elseifif(isset($xml[test][0][_v]))
        echo 
    $xml[test][0][_v]; 

    یا فوقش دست ببرید توی سورس کلاس! نمی شه؟
    ۱۳۸۸ آذر ۲۹ ۰۵:۵۹ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    parsbin آفلاین
    امیرحسین تیموری
    ***

    ارسال‌ها: 120
    تاریخ عضویت: ۱۳۸۸ آبان ۲۲
    اعتبار: 0
    تشکرها : 26
    ( 7 تشکر در 7 ارسال )
    ارسال: #7
    RE: مشکل با یک کلاس xml2array
    الان از راه کنترل کردن دارم باهاش کار میکنم.
    وای خوب انقدر تگ و اینها زیاد داره برنامه ام که واقعا میشه گفت حجم کار رو حداقل دوبرابر بیشتر کرده.
    در کلاس هم میشه دست برد احتمالا.
    برای همین تاپیک زدم دیگه Big Grin
    در این رابطه کمک میخوام.
    __________________________________________________________________________
    وب سایت
    آموزش VOIP - Asterisk - Freeswitch
    ۱۳۸۸ آذر ۲۹ ۰۹:۵۹ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    oia آفلاین
    محمد ثانی
    *****

    ارسال‌ها: 2,012
    تاریخ عضویت: ۱۳۸۷ آذر ۲۶
    اعتبار: 66
    تشکرها : 2330
    ( 2091 تشکر در 1290 ارسال )
    ارسال: #8
    RE: مشکل با یک کلاس xml2array
    خب من دیدم که کلاس نیست بلکه چند تا تابع اند
    یکم دست بردم توش تا خروجی که می خوای برات ایجاد کنه البته خودت یکم بیشتر باهاش ار کن که یوقت مشکلی نداشته باشه
    اما بنظرم اینطوری دیگه یخورده از XML دور می شه!
    ---
    توی حلقه foreach یکی دو تا شرط رو با کامنت کذاشتن از برنامه حذف کردم


    فایل‌(های) پیوست شده
    .php  function.php (اندازه: 2.82 KB / تعداد دفعات دریافت: 2)
    ۱۳۸۸ آذر ۳۰ ۱۲:۳۷ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : parsbin
    parsbin آفلاین
    امیرحسین تیموری
    ***

    ارسال‌ها: 120
    تاریخ عضویت: ۱۳۸۸ آبان ۲۲
    اعتبار: 0
    تشکرها : 26
    ( 7 تشکر در 7 ارسال )
    ارسال: #9
    RE: مشکل با یک کلاس xml2array
    ممنون
    این رو تست کردم کار نکرد برام.
    ببینین چیزی که کار رو راه میندازه اینه که
    کد PHP:
    $xml[test][0][_v]; 
    به این شکل رو اگر یک دونه تگ تست هم داشتیم عمل کنه و لازم نشه اگر یک دونه از تگ تست مثلا داشتیم به شکل
    کد PHP:
    $xml[test][_v]; 
    حتما نوشته بشه.
    __________________________________________________________________________
    وب سایت
    آموزش VOIP - Asterisk - Freeswitch
    ۱۳۸۸ آذر ۳۰ ۱۱:۴۲ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    oia آفلاین
    محمد ثانی
    *****

    ارسال‌ها: 2,012
    تاریخ عضویت: ۱۳۸۷ آذر ۲۶
    اعتبار: 66
    تشکرها : 2330
    ( 2091 تشکر در 1290 ارسال )
    ارسال: #10
    RE: مشکل با یک کلاس xml2array
    مگه قرار نبود که اون ایندکس عددی همیشه باشه
    کد PHP:
    <root>
        <
    user>oia</user>
    </
    root
    این حالا دیگه به این شکل قابل دست رسیه
    کد PHP:
    $xml['root'][0]['user'][0]['_v']; 
    ۱۳۸۸ دي ۱ ۱۲:۴۰ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : parsbin
    « قدیمی تر | تازه‌ تر »

  • صفحه‌ها (2):
  • ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS