我正在做一个项目,我需要使用一些web服务,比如Global Weather,来添加到服务中。
我正在使用NetBeans,目前我可以使用这个Web服务来调用天气+城市按国家名称:http://www.webservicex.net/globalweather.asmx?WSDL
无论如何,这就是我现在所做的:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Weather Finder</title>
</head>
<body>
<h1>Weather Test</h1> <%-- start web service invocation --%><hr/>
<%
try {
net.webservicex.GlobalWeather service = new net.webservicex.GlobalWeather();
net.webservicex.GlobalWeatherSoap port = service.getGlobalWeatherSoap();
java.lang.String countryName = "Australia";
java.lang.String result = port.getCitiesByCountry(countryName);
out.println("Result = "+result);
} catch (Exception ex) {
}
%>
<%-- end web service invocation --%><hr/>
<%-- start web service invocation --%><hr/>
<%
try {
net.webservicex.GlobalWeather service = new net.webservicex.GlobalWeather();
net.webservicex.GlobalWeatherSoap port = service.getGlobalWeatherSoap();
java.lang.String cityName = "Melbourne";
java.lang.String countryName = "Australia";
java.lang.String result = port.getWeather(cityName, countryName);
out.println("Result = "+result);
} catch (Exception ex) {}
%>
<%-- end web service invocation --%><hr/>
</body>
</html>
返回:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Weather Finder</title>
</head>
<body>
<h1>Hello World!</h1> <hr/>
Result = <NewDataSet>
<Table>
<Country>Australia</Country>
<City>Archerfield Aerodrome</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Amberley Aerodrome</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Alice Springs Aerodrome</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Brisbane Airport M. O</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Coolangatta Airport Aws</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Cairns Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Charleville Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Gladstone</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Longreach Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Mount Isa Amo</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Mackay Mo</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Oakey Aerodrome</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Proserpine Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Rockhampton Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Broome Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Townsville Amo</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Weipa City</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Gove Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Tennant Creek Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Yulara Aws</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Albury Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Devonport East</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Goldstream Aws</City>
</Table>
<Table>
<Country>Australia</Country>
<City>East Sale Aerodrome</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Hobart Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Launceston Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Laverton Aerodrome</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Moorabbin Airport Aws</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Mount Gambier Aerodrome</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Mildura Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Melbourne Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Macquarie Island</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Wynyard West</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Adelaide Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Albany Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Broken Hill Patton Street</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Ceduna Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Derby</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Darwin Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Bullsbrook Pearce Amo</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Edinburgh M. O.</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Forrest Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Geraldton Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Kalgoorlie Boulder Amo</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Kununurra Kununurra Aws</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Leigh Creek Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Learmonth Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Meekatharra Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Port Hedland Pardoo</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Parafield Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Belmont Perth Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Katherine Aerodrome</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Woomera Aerodrome</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Bankstown Airport Aws</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Canberra</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Coffs Harbour Mo</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Cooma</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Camden Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Dubbo</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Norfolk Island Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Nowra Ran Air Station</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Richmond Aus-Afb</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Sydney Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Tamworth Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Wagga Airport</City>
</Table>
<Table>
<Country>Australia</Country>
<City>Williamtown Aerodrome</City>
</Table>
</NewDataSet>
<hr/>
<hr/>
Result = <?xml version="1.0" encoding="utf-16"?>
<CurrentWeather>
<Location>Melbourne Airport, Australia (YMML) 37-40S 144-50E 141M</Location>
<Time>Sep 19, 2011 - 07:39 AM EDT / 2011.09.19 1139 UTC</Time>
<Wind> from the WSW (240 degrees) at 29 MPH (25 KT):0</Wind>
<Visibility> greater than 7 mile(s):0</Visibility>
<SkyConditions> mostly cloudy</SkyConditions>
<Temperature> 57 F (14 C)</Temperature>
<DewPoint> 44 F (7 C)</DewPoint>
<RelativeHumidity> 62%</RelativeHumidity>
<Pressure> 29.53 in. Hg (1000 hPa)</Pressure>
<Status>Success</Status>
</CurrentWeather>
<hr/>
</body>
</html>
这是伟大的,但是我如何得到所有的XML信息回到我的Java应用程序,所以我可以把它放在有用的地方?
例如,我如何将天气的结果更改为更有用的东西,如数组?或者数组列表,并在我的应用程序的其他地方调用。
谢谢!
您可以轻松地将result
XML转换(解析)为与web服务结果的模式相对应的有意义的java对象(请参阅http://java.sun.com/developer/technicalArticles/xml/mapping/),并将其传递给应用程序中的服务。
您还可以查看使用Java将HTML文件读取到DOM树该解决方案也可以应用于您的情况(将HTML解析为Dom树,然后对其进行操作)