/
  • استفاده از XML در PHP

  • ارسال پاسخ   امتیاز موضوع:
    • 1 رأی - میانگین امیتازات: 2
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی استفاده از XML در PHP
    نویسنده پیام
    php آفلاین
    hossein
    ****

    ارسال‌ها: 612
    تاریخ عضویت: ۱۳۸۷ دي ۴
    اعتبار: 13
    تشکرها : 467
    ( 798 تشکر در 277 ارسال )
    ارسال: #1
    استفاده از XML در PHP
    به کمک فوری احتیاج دارم .

    یه فایل xml دارم با ساختار زیر
    <title id="index">
    ...
    ...
    ...

    </title>


    می خوام داخل فایل دنبال title ای بگردم که id اون index هست بعد تمام محتوای بین اون تگ رو چه از تگ ها و چه محتوا بردارم و داخل یک متغییر بریزم .

    اگه میشه یک نفر کامل این مورد رو توضیح بده

    انشاالله خدا ازتون قبول کنه Rolleyes
    __________________________________________________________________________
    (آخرین ویرایش در این ارسال: ۱۳۸۸ فروردين ۲۳ ۰۸:۵۳ عصر، توسط Y.P.Y.)
    ۱۳۸۷ بهمن ۲۲ ۰۲:۵۱ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    parvane آفلاین
    عضو مهم
    ****

    ارسال‌ها: 352
    تاریخ عضویت: ۱۳۸۷ دي ۸
    اعتبار: 12
    تشکرها : 590
    ( 424 تشکر در 242 ارسال )
    ارسال: #2
    RE: استفاده از xml در php
    این فایل xml
    کد PHP:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
    </note> 

    کد PHP:
    <?php
    $xml 
    simplexml_load_file("test.xml");

    echo 
    $xml->getName() . "<br />";

    foreach(
    $xml->children() as $child)
      {
      echo 
    $child->getName() . ": " $child "<br />";
      }
    ?>
    کد PHP:
    Output:
    note
    to
    Tove
    from
    Jani
    heading
    Reminder
    body
    Don't forget me this weekend! 

    http://www.w3schools.com/PHP/php_xml_simplexml.asp
    ۱۳۸۷ بهمن ۲۳ ۰۱:۴۰ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : Alimokhlesi
    php آفلاین
    hossein
    ****

    ارسال‌ها: 612
    تاریخ عضویت: ۱۳۸۷ دي ۴
    اعتبار: 13
    تشکرها : 467
    ( 798 تشکر در 277 ارسال )
    ارسال: #3
    RE: استفاده از xml در php
    دستت درد نکنه .


    ولی این اونی که من می خواستم نیست

    من یه فایل xml با ساختار زیر دارم

    کد PHP:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <template>
        <page id="index">
            <body>    
                <div id="c_header">index</div>
                <div id="c_content">this is page index.</div>
            </body>
        </page>
    </template> 

    حالا می خوام تگ page ای که id اون index هست رو پیدا کنم و محتویات تگ body درون اون رو به طور کامل چه از متن و چه از تگ ها بخونم و داخل یک متغییر قرار بدم .
    __________________________________________________________________________
    (آخرین ویرایش در این ارسال: ۱۳۸۷ بهمن ۲۳ ۱۲:۲۹ عصر، توسط php.)
    ۱۳۸۷ بهمن ۲۳ ۱۱:۳۷ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    parvane آفلاین
    عضو مهم
    ****

    ارسال‌ها: 352
    تاریخ عضویت: ۱۳۸۷ دي ۸
    اعتبار: 12
    تشکرها : 590
    ( 424 تشکر در 242 ارسال )
    ارسال: #4
    RE: استفاده از xml در php
    خوب ببینید. من فایل xml تون رو یه مقدار تغییر دادم:
    کد PHP:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <template>
        <page id="index">
            <body>    
                <div id="c_header" class="header1">index_headers</div>
                <div id="c_content" class="content1">this is page index.</div>
            </body>
        </page>
          <page id="index1">
            <body>    
                <div id="c_header1">index1</div>
                <div id="c_content1">this is page index1.</div>
            </body>
        </page>
     
    </template> 
    اینم قسمت خوندن از فایل xml:
    کد PHP:
    <?php
    $xml 
    simplexml_load_file("test.xml");

    foreach(
    $xml->children() as $child)
    {
        
    $tagPageAttr=$child->attributes();
        
    $str="";
        if( 
    $tagPageAttr["id"]=="index")
        {
            
    //get children of body
            
    foreach ($child->body->children() as $childs){
                
    $str .="< ";
                
    //get attributes
                
    foreach ($childs->attributes() as $a=>$b)
                {
                    
    $str .=" ".$a."= '";
                    
    $str .=$b ;
                    
    $str .="' ";
                }
                
    $str .='/>';
                
    $str .=$childs->attributes();
                
    $str .="< /".$childs->getName()."><br>";
                }
                echo 
    "string is $str<br>";
        }    
    }
    ?>

    توضیح:
    خوب ما با دستور زیر میایم فرزندان گره template رو پیدا می کنیم:

    کد PHP:
    foreach($xml->children() as $child

    حالا میایم صفات گره رو می خونیم و اونی رو که id اون index هست، پیدا میکنیم :
    کد PHP:
    $tagPageAttr=$child->attributes();
        if( 
    $tagPageAttr["id"]=="index"

    فرزندان تگ body رو میگیریم:
    کد PHP:
    foreach ($child->body->children() as $childs){ 
    بعد خود گره و صفاتش رو هم بدست میاریم:
    کد PHP:
    foreach ($childs->attributes()) 
    در دور اول foreach:
    کد PHP:
    foreach ($childs->attributes() as $a=>$b)
            {      
                    echo 
    "a is $a <br>";
                    
    $str .=" ".$a."= '";//a is id and class
                    
    $str .=$b ;//b is c_header when a is id and b is header1 when a is class
                    
    $str .="' ";
        }     
                
    $str .='/>';
                
    $str .=$childs->attributes();//index_headers
                
    $str .="< /".$childs->getName()."><br>"
    در دور بعد هم مقادیر تگ بعدی خونده میشه...

    این رو در حالت کلی در نظر گرفتم...حالا اگه ساختار فایلتون از این سادتر هست میتونید از تعداد foreach ها کم کنید
    ۱۳۸۷ بهمن ۲۳ ۰۷:۳۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : php oia Y.P.Y
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


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