2011-01-07 3 views
6

DomDocument를 사용하여 앵커 텍스트를 얻는 방법?

이 코드가있는 DOM 문서를 사용하여 구문 분석 :

그리고 나서이 코드를 실행합니다.

foreach ($urls as $url) 
{ 
    //echo "<br> {$url->getAttribute('href')} , {$url->getAttribute('title')}"; 
    foreach ($url->attributes as $a) 
    { 
     echo "<br>$a->name is $a->value"; 
    } 
    echo "<hr><br>"; 
} 

이렇게하면, URL의 속성으로 'href'만 볼 수 있습니다. 위의 경우 'Test'에서 '앵커 텍스트'를 가져올 방법이 없습니다. 링크의 앵커 텍스트는 어떻게 얻을 수 있습니까?

답변

5
foreach ($urls as $url) { 
    $attributes = $url->attributes; 
    echo "<br>$url->nodeValue is $attributes->href"; 
} 
+0

링크의 앵커 텍스트로 이미지 태그가 있습니다. nodeValue를 사용하면 아무 것도 반환하지 않습니다. find ('a [href = url]')를 사용하여 일치하는 앵커 링크를 얻습니다. 어떻게 이미지 태그를 얻을 수 있습니까 ?? – peter

+0

textContent가 아무 것도 반환하지 않습니다. something과 같은 것을 반환해야하지만 – peter

+0

innertext가 트릭을하지는 않습니다. 이제 이미지 태그를 괜찮게 반환합니다. 감사합니다 dqhendricks – peter

3

사용 DOMNode::$nodeValue : 당신이 $ URL의 아이 노드를 통해 이동하여 컨텐츠를 가져올 수 있도록

echo $url->nodeValue; 
0

텍스트 "테스트"는 DOM 텍스트 노드가 실제로있다.

당신은 솔루션이 게시물 확인할 수 있습니다 @lonesomeday는 지적 당신이 원하는 모든 텍스트 내부 경우이 실제로 innerHTML을을 확보하기위한 것입니다 How to get innerHTML of DOMNode?

+0

, 당신은 nodeValue를을 사용할 수 있습니다를 . –

0
here is two line code may it help some one 

$html = file_get_html($link); 
foreach($html->find("a") as $key=>$val) 
{ 
    echo $val->src; 
    echo '\n'; 
} 
관련 문제