10/10/2018, 00:17

mong được hướng dẫn về script PHP này

Server yêu cầu request đến link http://www.abcd.com/abcd.asmx/GETALL
Với username : abcd và password abcd

Thì sẽ trả về IE theo định dạng XML như trên (mình xin post lại cho tiện theo dõi )


<Class1>
<student1>
<VAN>10</VAN>
<TOAN>9</TOAN>
<LY>8</LY>
</student1>

<student2>
<VAN>5</VAN>
<TOAN>6</TOAN>
<LY>7</LY>
</student2>
</class1>




Mình viết như vậy mong các bạn góp ý đúng không nhé :


<?php
$ch = curl_init();
$data = array('Username' => 'abcd', 'Password' => 'abcd');
curl_setopt($ch, CURLOPT_URL, 'http://www.abcd.com/GETALL');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$data1 = curl_exec($ch);
curl_close($ch);

?>


(SERVER SẼ CHỈ TRẢ VỀ THEO ĐỊNH DẠNG XML NHƯ MÌNH VÍ DỤ TRÊN )


Nếu đoạn code trên đúng thì mình muốn lấy giá trị các biến STUDENT1,STUDENT2,VAN,TOAN,LY để lưu vào datbase và xử lý




Chắc các bạn hiểu ý mình rùi nhỉ ??

Mong nhận được sự giúp đỡ và tu vấn


thanks nhìu
Mahakaruna viết 02:33 ngày 10/10/2018
1. xml bạn sinh ra ko chuẩn : ko có thẻ "<?xml version='1.0' ...?>" và ko ai lại dùng tag "Class1" và "student1" cả, chỉ nên dùng "class" và "student"

2. Giả sử bạn đã thêm tag "<?xml version='1.0' ...?>" vào chuỗi xml trên và quá trình request file xml trên ko có trục trặc j ( tức là lúc này
$data1= "<?xml version='1.0' ... </student2></class1>" ;
Mình sẽ vd để lấy điểm TOAN của student1 :

$xh = new SimpleXMLElement($data1);
$Toan = (string)$xh->student1->TOAN ; // $Toan sẽ là kiểu chuỗi, bạn tự ép kiểu hay làm j đó làm

p/s : Nếu xml bạn thay đổi tag từ class1->class và student1->student thì "điểm Toán của SV thứ 1" sẽ được lấy như sau :
$Toan = (string)$xh->student[0]->TOAN ; // Có thể dùng foreach trên đối tượng student này ...

=> SimpleXML đơn giản nhỉ


Have fun
azman viết 02:25 ngày 10/10/2018
chao ban ,cam ơn bạn nhiều lắm

Mình đã sửa lại file XML thjeo đúng cấu trúc trên nhưng khi thêm phần lấy biến thì bị báo lỗi 500 INTERNAL SEVER ERROR


$xh = new SimpleXMLElement($data1);
$Toan = (string)$xh->student[0]->TOAN ;
Echo "Diem toan SV 1 la : ".$Toan;



Mogn nhận được góp ý
Mahakaruna viết 02:25 ngày 10/10/2018
Lạ nhỉ
Bạn thử vào phpinfo search từ "SimpleXML" xem, nếu chưa có thì enable SimpleXML extension đi.

* SimpleXML mặc định đc enable sẵn trên php5
azman viết 02:33 ngày 10/10/2018
Fatal error: Cannot instantiate non-existent class: simplexmlelement in /home/xx/xx/abc.php


Vậy là host chua enable SimpleXML !?? Mình xài host CPANEL , mong nhận được giúp dỡ làm sao enable SIMPLEXML !??

rất cám ơn
Bài liên quan
0