1. คลิกเลือกเมนู Tools > Plugins
2. เลือกแท็บ Available Plugins จากนั้นคลิกที่คอลัมน์ Name เพื่อเรียงลำดับชื่อจากมากไปหาน้อย
5. จากนั้นจะมีหน้าต่าง NetBeans IDE Install ซึ่งบอกว่า plugin XML Schema and WSDL จะถูกติดตั้ง ให้คลิก Next
ความรู้เอกซ์เอ็มแอล เว็บเซอร์วิส การแลกเปลี่ยนข้อมูล
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<?php
$xml = simplexml_load_file('allResults.xml');
$xml_result = "<?xml version='1.0'?><results>";
$xml_result .="<name>Kanda Saikaew</name>";
foreach ($xml->Result as $result) {
$xml_result .= '<result><title>';
$xml_result .= htmlspecialchars($result->Title);
$xml_result .= '</title><url>';
$xml_result .= htmlspecialchars($result->Url);
$xml_result .= '</url></result>';
}
$xml_result .= "</results>";
$fp = fopen('results.xml','w');
$write = fwrite($fp,$xml_result);
fclose($fp);
?>
เราก็จะได้ไฟล์ results.xml
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
<xsl:output method="html"/>
<xsl:template match="/results">
<html>
<head><title>Search Result by Yahoo</title></head>
<body>
<h1>Search Result for <xsl:value-of select="name"/></h1>
<table border="1">
<tr><th>Title</th><th>Url</th></tr>
<xsl:for-each select="result">
<tr><td><xsl:value-of select="title"/></td>
<td><a href="{url}"><xsl:value-of select="url"/></a></td></tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<?php
$doc = new DOMDocument();
$xsl = new XSLTProcessor();
$xsl_filename = "results.xsl";
$doc->load($xsl_filename);
$xsl->importStyleSheet($doc);
$xml_filename = "results.xml";
$doc->load($xml_filename);
echo $xsl->transformToXML($doc);
?>
แล้วเราก็จะได้ผลลัพธ์ที่ดูง่ายดังแสดงในรูปนี้
ใน PHP5 มี SOAP extension ที่ทำให้การเรียกใช้เว็บเซอร์วิสแบบ SOAP ง่ายขึ้นโดยการใช้คลาส SoapClient
ขั้นตอนวิธีการมีดังต่อไปนี้
1) หากเราต้องการเรียกใ้ช้เว็บเซอร์็วิสแบบ SOAP ใดเราก็ต้องรู้ที่อยู่ของเอกสาร WSDL ของเว็บเซอร์วิสนั้นก่อน เช่น
$client = new SoapClient($wsdl);
ถ้าหากว่าพบปัญหา Class 'SoapClient' not found ให้เพิ่มบรรทัดนี้ในไฟล์ php.ini
extension=php_soap.dll
ซึ่งถ้าหากใช้ระบบปฏิบัติการ Windows ไฟล์ php.ini อยู่ที่ไดเรกทอรี c:\windows
2) จากนั้นใช้ฟังก์ชัน _soapCall เพื่อเรียกใช้เมธอดที่เราต้องการโดยที่จะต้องระบุอินพุตพารามิเตอร์ในรูปแบบอาร์เรย์ เช่น
$result = $client->__soapCall($methodName, array($methodArguments));
3) ถ้าหากเราเรียกใช้เว็บเซอร์วิสที่พัฒนาโดยใช้ Microsoft .NET จะต้องมีการระบุ SOAP Action ในอาร์กิวเมนต์ของฟังก์ชัน __soapCall เช่น
$result = $client->__soapCall($methodName, array($methodArguments), array('soapaction' => $soapAction));
4) ถ้าหากเราเรียกใช้เว็บเซอร์วิสที่พัฒนาโดย Microsoft .NET จะได้ผลลัพธ์ที่อยู่ในรูปออปเจตก์ที่ประกอบด้วยอิลิเมนต์ที่มีชื่อตรงกับอิล ิเมนต์เอาต์พุตตามที่ระบุในเอกสาร WSDL เช่น
echo $result->outputElemName;
เราลองมาดูตัวอย่างของการเรียกใช้เว็บเซอร์วิส ปตท (http://www.pttplc.com/pttinfo.asmx) ซึ่งพัฒนาเป็นเว็บเซอร์วิสแบบ SOAP โดยใช้ C#.NET ด้วยโปรแกรมที่เขียนโดยภาษา PHP ดังนี้
อ้างอิงจาก
PHP: SOAP - Manual http://th.php.net/soap
PHP: SoapClient->__soapCall Manual http://th.php.net/soap_soapclient_soapcall
This blog entry was modified from the blog entry by the same author which is at http://gotoknow.org/blog/xmlws/161546