2011-11-07 2 views
0

이 코드를 사용하여이 사이트의 일부 금속 이름 (예 : 구리, 알루미늄)을 얻습니다. http://www.kitcometals.com/. 이 이름은 라이브 스팟 가격이라는 테이블의 페이지 왼쪽에 있습니다. 내가 구글 크롬의 XPath는 응용 프로그램에서이 XPath를 테스트 한DOMXPath 쿼리 오류 (아무 것도 표시되지 않음)

<?php 
$url = "http://www.kitcometals.com/"; 
$html = file_get_contents($url); 
$dom = new DOMDocument(); 
$dom->loadHTML($html); 
$xp = new DOMXPath($dom); 

$qs = $xp->query("//table[@dwcopytype='CopyTableRow']/tbody/tr[@class='spot']/td[@class='menuB']"); 
foreach($qs as $q) 
{ 
    echo $q->textContent."<br>"; 
} 
?> 

:

여기 내 코드입니다. 그것은 잘이 그 table.showing의 모든 금속의 이름을 보여주는 일했다 :

구리 니켈 알루미늄 아연 우라늄

를 리드하지만 PHP code.Would의 사람에서 작동하지 않는 문제를 파악하시기 바랍니다 ??

답변

1

브라우저의 "런타임"DOM에 대해 xpath 쿼리를 테스트했습니다. 그러나 실제 문서에는 tbody 요소가 없습니다. 시도하십시오

//table[@dwcopytype='CopyTableRow']/tr[@class='spot']/td[@class='menuB'] 
+0

귀하의 표현은 내 – qmaruf

+0

grmpf, 복사 및 붙여 넣기 오류와 동일합니다. 이제는 다릅니다 ;-) – VolkerK

+0

코드가 도움을 준 후에 잘 작동했습니다. 왜 크롬이 'tbody'를 보여주는 'inspect element'를 설명 할 수 있을까요 ?? 페이지를 다운로드 한 후 텍스트 편집기에서 src를 확인한 결과도 같은 결과를 보였습니다. 하지만 브라우저 창에서 src를 확인할 때 tbody 요소가 없습니다. 그것의 정말 유선. XPath를 효율적으로 검사하려면 어떻게해야합니까 ?? – qmaruf

관련 문제