محمد اعظمی

چگونه خطای junk after document element را رفع کنم؟

1 پست در این موضوع قرار دارد

ارسال شده در (ویرایش شده)

سلام دوستان، من چند وقت پیش داشتم دنبال تابعی می گشتم که مثل json_encode بتونم داده ها رو به صورت xml رمزگذاری (encode) کنم.

بعد از جستجو این تابع رو پیدا کردم بعد طبق مثالی که زده عمل کردم ولی نمیدونم چرا خروجی ها یکسان نیست و خطای junk after document element میده.

البته فهمیدم چرا این خطا چاپ میشه (المنت search خارج از المت ریشه قرار میگیره در اصل المنت search باید به عنوان المنت ریشه شناخته بشه ولی نمیشه) تعجم از اینه که دستورات من دقیقا شبیه به مثاله.

مثال تابع:


$data = array();
for ($i = 0; $i < 3; $i++) {
$data['users'][] = array(
'name' => 'user' . $i,
'img' => 'http://www.example.com/user' . $i . '.png',
'website' => 'http://www.example.com/',
);
}

header('Content-Type: application/xml');
echo xml_encode($data);

دستوراتی که من نوشتم که من نوشتم:


$results=array();

for($i=0;$i<=$counter;$i++){
if($type=='feature,tv_series'){
if($post_type[$i]==''){
$post_type[$i]='movie';
}
$results['search'] []=
array(
'Title'=> $titles[$i],
'Year' => $year_type[$i],
'imdbID' => $imdbid[$i],
'imdbRating' => $imdb_rate[$i],
'Type' => $post_type[$i],
);
}
else{
$results['search'] []=
array(
'Title'=> $titles[$i],
'Year' => $year_type[$i],
'imdbID' => $imdbid[$i],
'imdbRating' => $imdb_rate[$i],
);
}
}
if($format=='json'){
$data['response']=json_encode($results);
$this->load->view('response_json',$data);
}
else{
$data['response']=xml_encode($results);
$this->load->view('response_xml',$data);
}

بیشتر به شکل آرایه ها توجه کنید (مابقی دستورات چندان ربطی به قضیه نداره)

حالا به خروجی مثال اصلی تابع که توی آموزش اومده بود دقت کنید:


<?xml version="1.0"?>
<users>
<user>
<name>user0</name>
<img>http://www.example.com/user0.png</img>
<website>http://www.example.com/</website>
</user>
<user>
<name>user1</name>
<img>http://www.example.com/user1.png</img>
<website>http://www.example.com/</website>
</user>
<user>
<name>user2</name>
<img>http://www.example.com/user2.png</img>
<website>http://www.example.com/</website>
</user>
</users>

حالا به خروجی من دقت کنید:


<?xml version="1.0"?>
<search>
<Title>Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb</Title>
<Year>1964</Year>
<imdbID>tt0057012</imdbID>
<imdbRating>8.5</imdbRating>
</search>
<search>
<Title>How I Live Now</Title>
<Year>2013</Year>
<imdbID>tt1894476</imdbID>
<imdbRating>6.5</imdbRating>
</search>
<search>
<Title>Those Magnificent Men in Their Flying Machines or How I Flew from London to Paris in 25 hours 11 minutes</Title>
<Year>1965</Year>
<imdbID>tt0059797</imdbID>
<imdbRating>7.0</imdbRating>
</search>

خب اگه بخوام دوتا مثال رو مقایسه کنم توی مثال اصلی users میشه المنت ریشه ولی نمیدونم المنت user چطوری تولید شده :blink:

حالا مثال منم باید search بشه المنت ریشه، آخه چرا نمیشه ؟ :(

البته کلاس simple_xml_encode هم هست ولی هرکاری کردم توی codeigniter به عنوان library شناخته نشد. برای همین این تابع رو به عنوان helper اضافه کردم.

ویرایش شده در توسط محمد اعظمی
0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط nnmmss
      سلام
      من كاملا در وردپرس تازه كار هستم. سايتي با پوسته RealNews طراحي شده. منوهايي دارم كه داراي منو و زير منو هستند. وقتي يك نوشته را به زير منو اختصاص ميدم بعد روي منو ميروم كليه نوشته هاي زير منو را هم نشان ميدهد. مثلا من به اين صورت است
      منو1
      زيرمنو 1-1
      زير منو1-2
       
      من اگر روي زير منو 1-1 كليك كنم فقط نوشته هاي زير منو 1-1 را نشان ميده ولي وقتي روي منو1 كليك كنم تمام نوشته هاي منو1   ,    زيرمنو1-1 و زيرمنو1-2 را نشان ميدهد. چطور ميتوانم اين موضوع را تصحيح كنم كه با كليك كردن روي منو1 فقط نوشته مربوط به منو1 را نشان دهد
    • توسط rendesharif
      با سلام 
      24 ساعت پیش در حال آپدیت تب های وبسایت بودم که اینترنت قطع شد و هنگامی که سعی کردم دوباره وارد کنترل پنل بشم دیدم صفحات ساختار خودشون رو از دست دادن و به نحوی بصورت لایت بارگزاری میشن برای حل این مشکل چیکار میتونم بکنم آیا راه حلی هست.
      تصویر قسمت لاگین هم اضافه کردم میتونید ببینید که دیگه خبری از ساختار اصلی نیست در مابقی صفحات کنترل پنل هم به همین شکل هست

    • توسط m2sali
      چطور میتونم در وردپرس یوزر کاربری که لاگین کرده رو با متد پست به یه صفحه asp ارسال کنم.

      من میخوام یه لینک تو سایت وردپرسی یه لینک بذارم که کاربر که کلیک کرد ، اول چک کنه که لاگین کرده یا نه ، اگه لاگین نکرده اول مجبور باشه لاگین کنه و بعد از لاگین نام کاربریش از طریق متد پست به یه لینک خارجی ارسال بشه.
    • توسط naff
      سلام.
      من  میخوام یه صفحه ی استاتیک رو روی ftp  آپلود کنم به عنوان  index اصلی و بعد از کلیک روی دکمه ی مورد نظر کاربر منتقل بشه به سایت اصلی یا همون قالب وردپرس.
       مشکل اینجاست که وقتی صفحه ی  html  رو روی  ftp  آپلود میکنم سایت فقط این صفحه رو به عنوان  index  میشناسه و  این رو جایگزین  index وردپرس میکنه و این صفحه  رو  front page  میشناسه.
       در صورتی که من هر دوتاش رو  میخوام . و صفحه ی html  رو به عنوان  index  میخوام یعنی با وارد کردن اسم سایت اسن صفحه ظاهر بشه.
      صفحه ی اچ دی ام ال:
      https://altourneur.com/new.html
       صفحه ی اصلی سایت:
      https://altourneur.com

       
    • توسط Streetlife
      سلام کارشناسان عزیز و محترم
      دوستان چند روزه هرچی میگردم هیچ چیز مناسبی رو پیدا نمیکنم لطفا کمک بفرمایید.من یک طراح ورد پرسم و میخام واسه یک سایت که بلاگ وردپرس و فروشگاه پرستا شاپ هستش به صورت پاپ اپ یک نظرسنجی رو طراحی کنم که یه سوالی بپرسه و جواب رو بازدیدکننده ها تایپ کنن اما به این صورت که لایو سرچ باشه این فیلد یعنی از بین محصولات که روی دیتا بیس هستند با تایپ یک یا چند حرف ساجست بده لطفااااااااااا راهنمایی بفرمایید