Skip to content

Instantly share code, notes, and snippets.

@zbyna
Last active September 1, 2021 17:51
Show Gist options
  • Save zbyna/5915d907c98083333ce5 to your computer and use it in GitHub Desktop.
Save zbyna/5915d907c98083333ce5 to your computer and use it in GitHub Desktop.
Internet tools scrapování themoviedb.org xpath query
procedure TForm1.Button2Click(Sender: TObject);
var v: IXQValue;
i: Integer;
url,str: String;
pomString: String;
pomString3: String;
p: IXQValue;
p3: IXQValue;
vyrazProQuery:String;
begin
url:='https://api.themoviedb.org/3/search/movie?api_key=xxxxxxxxxxx&query=matrix';
//str:= '<html>'+retrieve(url)+'</html>';
str:=retrieve(url);
Memo2.Text:=str;
Memo1.Lines.Clear;
i:=0;
// Výraz pro výsledek uzavřený v <html></html> tj. json in xml
vyrazProQuery:='for $pr in jn:parse-json(.)("results")()' + sLineBreak +
'return [string($pr("title")), string($pr("release_date")) ]';
// Výraz pro čistý JSON řetězec tj. bez tagů <html></html>
vyrazProQuery:= 'for $pr in $json("results")()' + sLineBreak +
'return [string($pr("title")), string($pr("release_date")) ]';
// Výraz zjednodušený pro jednu proměnnou pomocí operátoru kontext . a mapování !
vyrazProQuery:= '$json("results")() ! [string(.("title")), string(.("release_date"))]';
for v in process(str,vyrazProQuery) do
begin
//----- pro return {$pr("title") : $pr("release_date") }
//pomString3:=(v as TXQValueObject).values.getname(0);
//pomString:= (v as TXQValueObject).values.getString(pomString3) ;
//----- pro return [$pr("title"), $pr("release_date") ]
//p :=(v as TXQValueJSONArray).seq.get(0); // není třeba rozdělovat
//pomString:=p.toString; // benibela opravil hurá :-)
//p3:=(v as TXQValueJSONArray).seq.get(1);
//pomString3:= p3.toString;
pomString:= (v as TXQValueJSONArray).seq.get(0).toString;
pomString3:=(v as TXQValueJSONArray).seq.get(1).toString;
Memo1.Append((inttostr(i))+' '+(pomString) + ' :-) '+ pomString3);
i:=i+1;
end;
end;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment