محمد اعظمی

چگونه خطای 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

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط prooshe
      سلام خسته نباشید.
      من بدون فعالسازی ssl و نصب افزونه از قسمت تنظیمات وردپرسم آدرس سایتم را از http به https تغییر دادم الان دیگه نه سایتم بالا میاد نه دسترسی به مدیریتم دارم تا دوباره ویرایش کنم لطفا راهنمایی کنید؟
    • توسط samadionline
      سلام خدمت شما عزیزان
      چطوری میشه در وردپرس مثل جوملا برای کاربران گروه و سطوح دسترسی تعریف کرد؟
      و همچنین اینکه در جوملا در تنظیمات میشد صفحه آفلاین تعریف کرد و کاربران با لاگین کردن وارد صفحه اصلی سایت میشدند در وردپرس چطور میشه این کار رو انجام داد؟
      تشکر می کنم اگر کسی سر در میاره یه توضیح مختصر بده
    • توسط ashkan91
      با سلام و خسته نباشید
      دوستان کسی میدونه چطور میشه فیلد ایمیل رو از تو فرم تسویه حساب ووکامرس غیرضروری کرد؟ (بدون استفاده از افزونه) یکی از دوستان این لینک رو فرستادن اما نمیدونم کدام تکه کد از این صفحه را میبایست درون کدهای سایت قرار بدم که مشکل حل بشه؟
      https://docs.woocommerce.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/#example-make-phone-number-not-required
    • توسط aiinaz
      سلام دوستان 
       برای فونت من از @font face استفاده کردم تا فونتی که لازم دارم اعمال بشه اما نمی دونم چرا هر دفعه که صفحه رفرش میشه برای چند ثانیه فونت تغییر میکنه؟!!!! از نظر ادرس دهی هم درست انجام دادم و بعضی از فونت ها کلا اعمال نمیشه با اینکه روی سیستمم دارم؟!!!