01: /*
02: * Copyright 2005-2007 Noelios Consulting.
03: *
04: * The contents of this file are subject to the terms of the Common Development
05: * and Distribution License (the "License"). You may not use this file except in
06: * compliance with the License.
07: *
08: * You can obtain a copy of the license at
09: * http://www.opensource.org/licenses/cddl1.txt See the License for the specific
10: * language governing permissions and limitations under the License.
11: *
12: * When distributing Covered Code, include this CDDL HEADER in each file and
13: * include the License file at http://www.opensource.org/licenses/cddl1.txt If
14: * applicable, add the following below this CDDL HEADER, with the fields
15: * enclosed by brackets "[]" replaced with your own identifying information:
16: * Portions Copyright [yyyy] [name of copyright owner]
17: */
18:
19: package org.restlet.example.book.rest.ch2;
20:
21: import org.restlet.Client;
22: import org.restlet.data.Protocol;
23: import org.restlet.data.Reference;
24: import org.restlet.data.Response;
25: import org.restlet.resource.DomRepresentation;
26: import org.w3c.dom.Node;
27:
28: /**
29: * Searching the web with Yahoo!'s web service using XML. This version is
30: * namespace aware.
31: *
32: * @author Jerome Louvel (contact@noelios.com)
33: */
34: public class Example2_1b {
35: static final String BASE_URI = "http://api.search.yahoo.com/WebSearchService/V1/webSearch";
36:
37: public static void main(String[] args) throws Exception {
38: if (args.length != 1) {
39: System.err.println("You need to pass a term to search");
40: } else {
41: // Fetch a resource: an XML document full of search results
42: String term = Reference.encode(args[0]);
43: String uri = BASE_URI + "?appid=restbook&query=" + term;
44: Response response = new Client(Protocol.HTTP).get(uri);
45: DomRepresentation document = response.getEntityAsDom();
46:
47: // Associate the namespace with the prefix y
48: document.setNamespaceAware(true);
49: document.putNamespace("y", "urn:yahoo:srch");
50:
51: // Use XPath to find the interesting parts of the data structure
52: String expr = "/y:ResultSet/y:Result/y:Title/text()";
53: for (Node node : document.getNodes(expr)) {
54: System.out.println(node.getTextContent());
55: }
56: }
57: }
58: }
|