2012-02-28 2 views
-1

루핑을 사용하여 인쇄를 시도했지만 다음 요소가 인쇄되지 않습니다.
제게 설명해주는 간단한 예를 들어주세요. PHP DOM을 사용하여
둘째로 나는 id을 가진 X 번째 요소를 얻을 수 있습니까?id로 모든 요소를 ​​가져 오는 방법 PHP DOM

갱신

감사합니다. id과 같은 요소를 만들 때 오류가 발생하여 class으로 변경되었습니다. 프로그래밍에 신경써 주셔서 감사 드리며, 나를 위로 해 주셔서 감사합니다. 클래스 이름이 같은 요소를 모두 추출 할 수있는 방법을 알려주십시오. 클래스 이름을 가진 문서에서 X 번째 요소를 얻을 수 있습니까?

+1

주어진 ID로 문서에 둘 이상의 요소를 사용할 수 없습니다. – lonesomeday

+0

id가있는 모든 div 요소를 반환하고 싶습니다. – krishna

+0

ID 값은 문서 내에서 고유해야합니다. DOM 라이브러리가 getElementById()에서 하나 이상의 요소를 제공하지 않습니다. 단서는 이름에 :-) –

답변

0

XPath이 링크

를 참조 사용할 수있는이
http://uk.php.net/manual/en/domnodelist.item.php

$node = $parentnode->firstChild; 
do { 
// do something 
} while ($node = $node->nextSibling); 


또는이

for ($i = 0; $i < $nodeList->length; ++$i) { 
    $nodeName = $nodeList->item($i)->nodeName; 
    $nodeValue = $nodeList->item($i)->nodeValue; 
} 
2

사용 Simple HTML DOM Parser

$html = file_get_html('index.php'); 

// Find all images 
foreach($html->find('div') as $element) 
    echo $element->id. '<br>'; 

또는 특정 사업부

// Find all <div> which attribute id=foo 
$ret = $html->find('div[id=foo]'); 
+0

. 그러나 어느 것도 그것을 돌려 보내지 않고있다. – krishna

4

당신은 HTML에서 같은 id 두 개 이상의 요소가있는 경우,이 같은 오류가 발생합니다 :

경고 : DOMDocument :: loadHTML() [domdocument.loadhtml] : ID myid 가 En에 이미 정의되어 있습니다. tty

동일한 id을 가진 요소를 두 개 이상 가질 수 없기 때문에. 당신이있는 경우 하나 : 또한

$dom = new DOMDocument(); 
$dom->loadHTML(' 
    <html> 
     <body> 
      <div></div> 
      <div></div> 
      <div id="myid">myid1</div> 
     </body> 
    </html> 
'); 

$element = $dom->getElementById('myid'); 
echo $element->nodeValue."<br>"; 

, 당신은 u는 사용할 수 DOMDocument::getElementsByTagName 또는

관련 문제