2016-11-29 4 views
0

Привязка для извлечения значения «Выход» между пролетами, только если заголовок «ABCD (1,2)» с использованием php. В принципе, найти «Output (извлечение выход)Извлечение значения узла после определенного тега

Вот раздел HTML:.

<div class="wrap"> 
    <strong title="ABCD (1,2)" class="name">ABCD (1,2):</strong> 
    <div id="test1">         
     <div class="testclass" id="test2"> 
     <span>Output</span> 
     </div> 
    </div> 
</div> 

Вот код, который я хотел бы использовать:

<?php 
$html = file_get_contents('test.html'); 
$dom = new DOMDocument; 
@$dom->loadHTML($html); 
//Some code needs to go here! 
$tags = $dom->getElementsByTagName('strong'); 
?> 

ответ

0

Одним из способов было бы просто используйте xpath в этом случае используйте запрос, который будет выбирать нужный элемент. Получите этот элемент, который имеет заголовок , и получите следующий div и под ним перейдите к разделу :

Пример (используя разметку выше):

$html = ' 
<div class="wrap"> 
    <strong title="ABCD (1,2)" class="name">ABCD (1,2):</strong> 
    <div id="test1">         
     <div class="testclass" id="test2"> 
      <span>Output</span> 
     </div> 
    </div> 
</div> 
'; 

$search_string = 'ABCD (1,2)'; 
$dom = new DOMDocument; 
@$dom->loadHTML($html); 
$query = "//strong[@title = '{$search_string}']/following-sibling::div/div/span"; 
$xpath = new DOMXpath($dom); 
$result = $xpath->query($query); 
if($result->length > 0) { 
    echo $result->item(0)->nodeValue; 
} 
Смежные вопросы