Last updated May 25, 2010 05:19, by EstebanFuentealba
JQL Java Query Language Wiki
JQL es un lenguaje de sintaxis similar a SQL que puede ser utilizado para filtrar ,manipular y unificar datos de páginas Web , simplemente con una consulta. Implementación en Java de YQL (http://developer.yahoo.com/yql/)
En éste ejemplo se hace una consulta jql para filtrar datos de la página de goear. Pasándole el xpath que queremos obtener, el programa filtrara los datos y nos devolverá los datos que requerimos .
Uso:
//Creo la consulta SQL
String sql = "SELECT * FROM html WHERE url='http://goear.com/search.php?q=rafaga' AND xpath=\"//a[@class='b1']\"";
//Creo un objeto de la clase JQL y le paso como parametro la query sql y el tipo que quiero que devuelva (JSON)
JQL jql = new JQL(sql,JQLResultType.JSON);
//Agrego un listener para que sea lanzado cuando me devuelva los resultados
jql.addJQLResultListener(new JQLResultListener() {
//Implemento el método jqlResult para obtener los resultados
public void jqlResult(JQLResultEvent event) {
//Imprimo los resultados de mi consulta
System.out.println(event.getJqlResult());
}
});
//creo un hilo y le paso como parametro el objeto JQL
Thread th = new Thread(jql);
//lanzo el hilo
th.start();
Salida:
run:
{
"query": {
"count": "10",
"created": "2010-05-23T10:19:48Z",
"lang": "en-US",
"diagnostics": {
"url": {
"execution-time": "4072",
"proxy": "DEFAULT",
"content": "http://goear.com/search.php?q=rafaga"
}
},
"results": {
"a": [
{"href":"listen/c77464e/rafaga-radio-andalucia-(1)-radio-andalucia-informacion","title":"Escuchar Rafaga Radio Andalucia (1) de radio andalucia informacion"},
{"href":"listen/6d87274/una-rafaga-de-amor-rafaga","title":"Escuchar Una rafaga de amor de rafaga"},
{"href":"listen/fd1b84c/una-rafaga-de-amor-rafaga","title":"Escuchar Una Rafaga De Amor de rafaga"},
{"href":"listen/3b043de/jambo-jambo---rafaga-sunshine-rafaga-sunshine","title":"Escuchar JAMBO JAMBO - Rafaga Sunshine de rafaga sunshine"},
{"href":"listen/1dbcd0b/una-rafaga-de-amor-rafaga","title":"Escuchar una rafaga de amor de rafaga"},
{"href":"listen/71b1c55/una-rafaga-de-amor---calidad-media---faviomundo.pe.kz-rafaga","title":"Escuchar Una Rafaga De Amor - Calidad Media - FavioMundo.Pe.Kz de rafaga"},
{"href":"listen/9ff4361/una-rafaga-de-amorr-rafaga","title":"Escuchar una rafaga de amorr de rafaga"},
{"href":"listen/b9cdad7/rafaga-feat-korekt---sabes(((-www.robney.com.pe-)))-rafaga-feat-korekt---sabes","title":"Escuchar Rafaga Feat Korekt - Sabes((( wWw.Robney.CoM.Pe ))) de Rafaga Feat Korekt - Sabes"},
{"href":"listen/1286fa6/rafaga---mentirosa-(danny-romero-remix)-rafaga---mentirosa-(danny-romero-remix)","title":"Escuchar Rafaga - Mentirosa (Danny Romero Remix) de Rafaga - Mentirosa (Danny Romero Remix)"},
{"href":"listen/b229d9c/no-te-vallas-remix-rafaga-dj-efexts-rafaga-dj-efexts","title":"Escuchar No Te Vallas Remix Rafaga Dj Efexts de Rafaga Dj Efexts"}
]
}
}
}
Esto es solo una idea de lo que el programa debe hacer. Además de devolver json como texto se podría devolver objetos:
- Document
- Map





