2014-11-13 3 views
1

이전에 몇 번 물어 봤지만 여기서는 다른 예제로는 알 수 없습니다. $ ulHTMLsaved에PHP DOMDocument로 자식 노드에 들어가기

$classname = "gallery2"; 
    $pageDOM = new DOMDocument(); 
    $pageDOM->loadHTML($kl); 

    $xpath = new DOMXPath($pageDOM); 
    $ul = $xpath->query("//ul[@class='$classname']"); 
    $ulNode = $ul->item(0); 

    $ulHTML = new DOMDocument(); 

    $ulHTML->appendChild($ulHTML->importNode($ulNode, TRUE)); 
    $ulHTMLsaved = $ulHTML->saveHTML(); 

var_dump 내가 원하는 모든 마크 업을 반환하지만 그때는 기존의 변수에서 자식 노드에 foreach 문을 얻을 어떻게 내가 설정 한 그?

$ulHTMLsaved에는 다음과 같은 내용이 포함되어 있습니다. & 모든 li 노드 내에 중첩 된 다른 노드의 다양한 속성을 가져 오려고합니다. 다음로 검색하여 자식 요소로

<ul> 
    <li> 
     <figure> 
      <a> 
       <img src="img.jpg" alt=""> 
      </a> 
     </figure> 
    </li> 
    <li> 
     <figure> 
      <a href=""> 
       <img src="img.jpg" alt=""> 
      </a> 
     </figure> 
    </li> 
</ul> 
+2

DOM은 나무입니다. 해당 트리의 모든 노드 (예 : html 태그)는 그 자체로 하위 트리의 루트입니다. 일단 xpath가 당신을 위해 노드를 찾으면, 당신은 더 많은 DOM 작업을 위해 그 노드를 사용할 수 있습니다. –

+0

그래서 동일한 xpath 변수를 사용하고 쿼리를 사용하여 새 변수를 만드시겠습니까? '$ xpath-> query ("// a");와 같은 것이지만'li' 노드를 어떻게 루프합니까? – joe

+0

은 "context"를위한 두 번째 arg를 query()에 사용합니다. 예 : '$ xpath-> query ('// a', $ node_from_previous_result)'는 $ node가 "root"인 DOM 분기로 xpath의 검색을 제한합니다. –

답변

0

얻을 수 있습니다 :

getElementsByTagName

getElementById

아마 자바 스크립트의 querySelectorAll 유사 클래스도보다 일반적인 일이있을 것입니다 , 그러나 그것이 현재 무엇인지 확실하지 않습니다.

관련 문제