2012-07-17 3 views
1

이 방법을 사용하면 충분히 쉽습니다. 나는 단어 언론 블로그의 다른 기사에서 "헤더"이미지를 가져 오기 위해 YQL을 사용하려고합니다. 각 기사에는 약간 다른 클래스 이름 (ID 없음)이있는 다른 "헤더"이미지가 있습니다. 필요한 모든 이미지 하나의 기본 CSS 클래스 인 "alignright"를 공유해야합니다. 아래 질문과 같이 질의를하면 아무것도 반환하지 않습니다. 내가 쿼리를 변경하는 경우Xpath 및 YQL의 문제

select * from html where url="urlofblog.com/" and xpath="//img[@class='alignright']" 

그러나, 정확히

select * from html where url="urlofblog.com/" and xpath="//img[@class='alignright size-full wp-image-3051']" 

난 다시 문제의 이미지를 얻을 특정 이미지에 클래스를 일치하도록. YQL은 "img [@ class ="를 여러 개의 입력이 아닌 하나의 큰 문자열로 간주합니다. 문제는 이러한 이미지 클래스가 하나의 큰 문자열로 간주 될 때 일치하지 않는다는 것입니다. 다음은 상황을 수정하려고 시도한 내용입니다.

  1. YQL의 'like'매개 변수를 살펴 보았습니다. (행운을 빌어 서 무언가를 찾는다)
  2. 는 xpath (지금까지 내가 사용한 적이없는)와 함께 더 나은 방법을 찾으려고 노력했다. 그 수색은 나를 here로 이끈다. 지금까지 나는 아직도 그것을 작동시키지 않는다.
  3. 나는 img [matches (@class, '\ balignright \ b')]를 사용하려했지만 YQL이 지원한다고 생각하지 않는다.

그 기본 CSS 클래스로 이미지를 가져올 방법이 있는지 아는 사람 있습니까? 블로그에있는 내용을 변경할 권한이 없습니다 (ID 삽입과 같은).

+0

테스트 할 URL을 알려주시겠습니까? YQL 콘솔에서 테스트하고 싶습니다. –

답변

1

는 XPath를 사용하여 포함() 문자열 함수는 여기에 좋은 것입니다. Wordpress 사이트에서 필요에 따라 항목을 추가 할 이미지를 얻으려는 것 같습니다. img가 class 속성에 CSS 클래스를 가지고 있다는 것만으로 CSS 클래스로 시작할 지 걱정하지 마십시오.

//img[contains(@class,'alignright')] 
1

예를 들어 XPath 문자열 함수를 사용할 수 있습니다. starts-with :

//img[starts-with(@class, 'alignright')] 
+0

기능 링크가 좋은 리드였습니다. 나는 "포함한다"를 사용하는 것을 끝내었다. 도움을 주셔서 감사합니다. – CountMurphy