2016-05-12 2 views
-1

Я писал PHP-код для получения информации с сайта, до сих пор мне удалось получить атрибут href, но я не могу найти способ получить текст из дочернего узла «span», может кто-нибудь мне помочь?Как я могу получить текст из дочернего узла с php DOMDocument

html->

<a class="js-publication" href="publication/247931167"> 
    <span class="publication-title">An approach for textual authoring</span> 
</a> 

Это, как я в настоящее время в состоянии получить HREF ->

@$dom->loadHTMLFile($curPage); 
    $anchors = $dom->getElementsByTagName('a'); 
    foreach ($anchors as $element) {    
     $class_ = $element->getAttribute('class'); 
     if (0 !== strpos($class_, 'js-publication')) { 
      $href = $element->getAttribute('href'); 
      if(0 === stripos($href,'publication/')){ 
       echo $href;//link para a publicação; 
       echo "\n"; 
      } 
     } 
    } 

ответ

1

Вы можете использовать DOMXpath

$html = <<< LOL 
<a class="js-publication" href="publication/247931167"> 
    <span class="publication-title">An approach for textual authoring</span> 
</a> 
LOL; 

$dom = new DOMDocument(); 
$dom->loadHTML($html); 
$xpath = new DOMXpath($dom); 
foreach ($xpath->query("//a[@class='js-publication']") as $element){ 
    echo $element->getAttribute('href'); 
    echo $element->textContent; 
} 
//publication/247931167 
//An approach for textual authoring 

Или без петли for , если вам нужен только один элемент:

echo $xpath->query("//a[@class='js-publication']/span")[0]->textContent; 
echo $xpath->query("//a[@class='js-publication']")[0]->getAttribute('href'); 

Ideone Demo

 Смежные вопросы

  • Нет связанных вопросов^_^