0
나에게는 어려운 것 같은 매우 중요한 질문이있다. 간단하게 현재 노드의 부모 노드에서 자식 노드를 선택해야한다 !! (..)를 사용하여 부모 노드를 선택한다는 것을 알고 있습니다.php DomXPath - 현재 노드의 부모 노드에서 자식 노드를 선택하는 방법?
... initiate/load dom+xpath ...
$res = $xpath->query('//table/tr/td');
foreach($res as $td) {
$spans = $td->getElementsByTagName('span');
$color = $spans[0]->nodeValue;
$imgs = $td->getELementsByTagName('img');
$src = $imgs[0]->getAttribute('src');
}
필요에가 없습니다 : 하지만 내 경우에 충분하지가 .. 이 내 PHP 코드는
<?php
/////////////////////////////////////////////////////////////////////
$html='
<table>
<tr>
<td colspan="2">
<span>green</span>
<img src="green.gif" />
</td>
</tr>
<tr>
<td>
<span>yellow</span>
<img src="yellow.gif" />
</td>
<td>
<span>red</span>
<img src="red.gif" />
</td>
</tr>
</table>
<table>
<tr>
<td>
<span>black</span>
<img src="black.gif" />
</td>
</tr>
</table>
';
/////////////////////////////////////////////////////////////////////
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DomXPath($dom);
/////////////////////////////////////////////////////////////////////
$evaluate = $xpath->evaluate('.//table/tr/td/span');
for($x=0,$results=''; $x<$evaluate->length; $x++)
{
$x1=$x+1;
$query1 = $xpath->query('.//table/tr/td/span');
$color = $query1->item($x)->nodeValue;
$results .= "color $x1 is : $color<br/>";
}
echo $results;
/////////////////////////////////////////////////////////////////////
?>
* now i need to get for every color its images src ..
i tried this but no way
<?php
/////////////////////////////////////////////////////////////////////
$html='
<table>
<tr>
<td colspan="2">
<span>green</span>
<img src="green.gif" />
</td>
</tr>
<tr>
<td>
<span>yellow</span>
<img src="yellow.gif" />
</td>
<td>
<span>red</span>
<img src="red.gif" />
</td>
</tr>
</table>
<table>
<tr>
<td>
<span>black</span>
<img src="black.gif" />
</td>
</tr>
</table>
';
/////////////////////////////////////////////////////////////////////
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DomXPath($dom);
/////////////////////////////////////////////////////////////////////
$evaluate = $xpath->evaluate('.//table/tr/td/span');
for($x=0,$results=''; $x<$evaluate->length; $x++)
{
$x1=$x+1;
$query1 = $xpath->query('.//table/tr/td/span');
$color = $query1->item($x)->nodeValue;
$query2 = $xpath->query('.//table/tr/td/span['.$x1.']/../img');
$image = $query2->item($x)->getAttribute("src");
$results .= "color $x1 is : $color - and- image $x1 is : $image<br/>";
}
echo $results;
/////////////////////////////////////////////////////////////////////
?>
도와주세요 ::
Marc. 그것은 나를 위해 매우 중요한 정보입니다 .. +1 –