رفتن به مطلب

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


مهمان

پست های پیشنهاد شده

سلام دوستان، من چند وقت پیش داشتم دنبال تابعی می گشتم که مثل 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 اضافه کردم.

ویرایش شده توسط مهمان
لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...