PDA

View Full Version : سوال: دریافت پاسخ xml از یک webservice در php



Arsess
سه شنبه 03 فروردین 1389, 23:45 عصر
سلام

من میخوام از در php از یک وب سرویس استفاده کنم که پاسخی به شکل xml میده. چطور میتونم این پاسخ رو تحت کنترل بگیرم. برای اینکه وقتتونو نگیرم خیلی جستجو کردم ولی پیدا نکردم. میشه یه کد کوچیک برام بنویسین؟ :ناراحت: منون میشم.

امیـرحسین
چهارشنبه 04 فروردین 1389, 00:58 صبح
15 دقیقه وقت بذارید این سه مقاله فوق العاده رو مطالعه کنید:


PHP 5 و XML (قسمت اول) (http://blog.phpmystery.com/?plink=68)
PHP 5 و XML (قسمت دوم) (http://blog.phpmystery.com/?plink=69)
PHP 5 و XML (قسمت سوم) (http://blog.phpmystery.com/?plink=70)

Arsess
چهارشنبه 04 فروردین 1389, 22:53 عصر
خیلی ممنون ، بسیار کمک کرد ولی متاسفانه وب سرویسی که من استفاده میکنم ، اجازه هیچ دسترسی بجز از طریق SOAP نمیده. بعبارتی من یک URL به وب سرویس میفرستم و یک XML دریافت میکنم. چطور میشه این XML دریافتی رو در یک متغیر در PHP توسط دستورات SOAP ذخیره کرد؟

امیـرحسین
چهارشنبه 04 فروردین 1389, 23:56 عصر
شما مگه XML دریافت نمی کنید؟ خوب توسط SimpleXML و روشهای دیگه می تونید پردازشش کنید دیگه...

Arsess
پنج شنبه 05 فروردین 1389, 14:00 عصر
وقتی از simplexml_load_file استفاده میکنم و بجای فایل یک URL میدم، پیغام زیر رو میده:


Warning: simplexml_load_file() [function.simplexml-load-file (http://test.pacomed.de/function.simplexml-load-file)]: URL file-access is disabled in the server configuration in /var/www/web1084/Arsess.php on line 11


در صورتی که ما نام کاربر و رمز رو داریم و در اجرای یک کد HTML میتونیم پاسخ XML دریافتی رو ببینیم.

تنها چیزی که من دارم یک URL هست که وقتی اونو توی Browser مینویسم، XML زیر رو نشون میده:


<Medicine>
<PIC>1260683</PIC>
<Name>Aspirine-C</Name>
<Manufacturer>Gpp Pharma GmbH</Manufacturer>
<ManufacturerID>9820</ManufacturerID>
<Quantity>20</Quantity>
<UnitOfQuantity>ST</UnitOfQuantity>
<PharmacyPrice>8,4600</PharmacyPrice>
<Dispensing/>
<Prescription>0</Prescription>
<LifeStyle>0</LifeStyle>
<PatientChargeFree>0</PatientChargeFree>
<VatRate>0</VatRate>
</Medicine>


حالا میخوام این XML رو تحت کنترل بگیرم. با simplexml_load_string هم warningزیر رو نشون میده:


Warning: simplexml_load_string() [function.simplexml-load-string (http://test.pacomed.de/function.simplexml-load-string)]: Entity: line 1: parser error : Start tag expected, '<' not found in /var/www/web1084/Arsess.php on line 11

Arsess
پنج شنبه 05 فروردین 1389, 15:00 عصر
بدلیل وجود نام کاربر و کلمه رمز در URL ای که من دارم، اجازه دسترسی از طریق simplexml را از webservice ندارم. تنها مثالی که وب سرویس برای ما ارسال کرده، html زیره:


<html>
<body>
<form action="http://webservices.ifap.de/ifapWebService.asmx/ifapGetMedicineByPIC" method="POST">
<input name="user"></input>
<input name="pass"></input>
<input name="search"></input>
<input type="submit" value="Enter"></input>
</form>
</body>
</html>
?>


که وقتی user و pass و کلمه مورد جستجو رو وارد میکنیم، در پاسخ یک xml برمیگرده. ولی من نمیدونم چطوری این xml رو تحت کنترل بگیرم.

Arsess
پنج شنبه 05 فروردین 1389, 19:51 عصر
مشکل حل شد. اشتباه از تنظیم server خودم بود. بهر حال تشکر از توجهت امیرحسین جان