Sa detaliem pe un exemplu, de care m-am lovit eu in rezolvarea temei 2 Dupa cum puteti citi si in detalierea abordarii mele , trebuia sa parcurg pagini de filme de pe IMDB si sa extrag referinte la alte filme si regizori. In particular, trebuia sa extrag din lista de recomandari ale unui film alte titluri de filme de potential interes.
Iata spre exemplu o "mica" bucata din pagina IMDB a (excelentului ) film Mean Streets: aici e exemplul
Cu SAX, si de fapt cu orice fel de parser secvential - de ex cel folosit de mine pentru a implementa tema, diferit de SAX - pentru asta vezi tot modul meu de implementare - pentru a face rost de lista de filme recomandate, trebuie mai intai cautat in HTML acel tag H3 care are ca text Recommendations. Dupa ce acest tag este gasit, trebuie cautata(prima) eticheta de inceput de tabel; dupa ce si aceasta este gasita, trebuie cautata a doua eticheta de start TR ; abia in acest moment, pentru fiecare TD intalnit, putem face rost de informatiile ce ne intereseaza despre film. Si inca acest procedeu nu este deloc complicat; pentru niste informatii aflate in niste taguri cu un nivel de imbricare mai mare, deja incepi sa te pierzi in detalii.
Sa comparam spre exemplu cu modul cum ai putea sa rezolvi problema in DOM:
xmlDoc = loadXMLDoc("MeanStreets.html");
var x = xmlDoc.getElementsbyTagName("H3");
for( var i=0 ; i < x.length ; i++ )
{
if( x[i].nodeValue.equals("Recommendations") ) {
var children = x[i].nextSibling().nextSibling().getChildren()[2].getChildren();
for( var j = 0 ; j < children.length ; j++ ) {
var movie = children[j].getFirstChild();
movieName = movie.nodeValue;
movieLink = movie.getAttribute('href');
}
}
}
Parca arata ceva mai curat, nu?
Niciun comentariu:
Trimiteți un comentariu