유감스럽게도, 응답에서 키 => 값 쌍을 얻을 수있는 방법을 모르지만 여기서 키는 URL이고 값은 html 응답입니다. 하지만 다음 쿼리를 사용하여 사용 사례를 충족하는지 확인할 수 있습니다.
select * from yql.query.multi where queries="select * from html where url='http://www.whooma.net';select * from feed where url='http://www.dfdsfsdgsfagdffgd.com';select * from html where url='http://www.cnn.com'"
시도해보십시오 here. 쿼리를 실행하기 전에 할 수있는 일은 queries
에있는 url
배열에서 순서를 유지하는 것입니다. ['http://www.whooma.net','http://www.dfdsfsdgsfagdffgd.com','http://www.cnn.com']
과 같습니다. 이 배열을 A
이라고 부를 수 있습니다. YQL 쿼리의 응답을 반복 할 때 존재하지 않는 url은 null을 반환합니다. 위의 질의에서 샘플 응답 :
<results>
<results>
// Response from select * from html where url='http://www.whooma.net'. This should be some html
</results>
<results>
// Response from select * from feed where url='http://www.dfdsfsdgsfagdffgd.com'. This should be null.
</results>
<results>
// select * from html where url='http://www.cnn.com'. This should also be some html
</results>
</results>
그래서 결론적으로, 당신은 YQL에서 배열 A
및 응답을 반복 할 수 있습니다. 배열 A
의 첫 번째 요소는 해당 YQL 응답의 첫 번째 results
(내부 결과) 요소와 일치해야합니다. 즉 두 배열에서 해시 맵을 생성합니다. 나는 그 대답이 길다는 것을 알고 있지만 그것이 필요하다고 생각한다. 혼동이 있으면 알려주십시오.
나는 이해할 수 없다. "*하지만로드 된 곳의 URL은 어디에도 표시되지 않습니다 *"위의 코드에서 위의 코드를 수행 할 것으로 기대합니까? "* 어떤 HTML 페이지가 어떤 URL에 속하는지 알아 낸다. *"eing ??? – Oriol
나는 그것이 미안하다고 생각했다. 다시 설명해 드리겠습니다. 내가 무리를로드, 그들 중 일부는로드 된 다음로드 된 URL을 배열로 포장하고 다시 내게 보냈습니다. 문제는 : 배열의 모든 요소가 대응하는지 묻는 URL에 대한 힌트가 없습니다. 그래서 그냥 코드 대신, 내가 어떤 데이터가 어떤 URL에 해당하는지, 그리고 어떤 URL이로드되지 않았는지 알 수 있도록 (URL, 데이터)의 백쌍이 필요합니다. –