2013-03-13 2 views
0

html에서 자식 노드의 값을 가져 오려고합니다.html에서 자식 노드의 값을 가져 오는 중

내가 시도하는 것 : -

$data = $dom->getElementById($identifier); 
$node = $data->childNodes; 
foreach($node as $node) 
    { 
      echo $node->nodeName; 
      echo $node->nodeValue; 

      } 
    } 

내가 childtag이 값 내가 빈 문자열을 얻고이없는 경우에도 모든 childNodes에 값을 얻을 수 있어요.

태그에 적절한 값이 있으면 값을 가져 오는 방법이 있습니까 ???

업데이트 : -

내 htmldata : -

<div id="myid"> //I give this id as input 
<h1> Some data 1</h1> 
<script type=".."> google adsense details </script> 
<p class="some class"> </p> 
<div class="some class1"></div> 
<h2>data2</h2> 
<p>SOme more data...blah blah..</p> 
</div> 

는 내가 원하는 출력 : - 내가

Some data 1 
    data2 
    SOme more data...blah blah.. 

을 얻고 무엇을 : -

Some data 1 
    googleadsense details//i am getting values inside script as well 
    //blanc data which includes many spaces of tag p 
    //blanc data which includes many spaces of tag div 
    data2 
    SOme more data...blah blah.. 
+0

'($ 노드와 노드 $)'또는'($ 노드로 데이터 $)'?? –

+0

코드를 변경했습니다 ... –

+0

무엇을 위해 투표 하시겠습니까 ?? –

답변

1

몇 가지 테스트 후, 이것은 당신이 달성하기 위해 노력하고 무엇을 위해 일해야

1 편집 :이 솔루션은 내부 식별자를 통해 루프 여러 하위 노드를 차지한다.

2 편집 :이 솔루션은 태그/당신이 반환 원하지 않는 값 것을 지정 차지하고있다.

3 편집 :은 원래의 질문에 업데이트 된 질문에 정말 무관위한 세부 사항을했다.

$dom = new DOMDocument(); 
$html = '<div id="myid"> //I give this id as input<h1> Some data 1</h1><script type=".."> google adsense details </script><p class="some class"></p><div class="some class1"></div><h2>data2</h2><p>SOme more data...blah blah..</p></div>'; 
$dom->loadHTML($html); 

$identifier = "myid"; 
$id_nodes = $dom->getElementById($identifier); 

foreach($id_nodes->childNodes as $node) 
{ 
    // Blacklist for what you do not want in your output: 
    if($node->nodeName != "script" && $node->nodeName != "#text" && $node->nodeValue != '') { 
     echo $node->nodeValue . "<br />"; 
    } 
} 

는 상기 스크립트의 출력은 다음

Some data 1 
data2 
SOme more data...blah blah.. 
+0

내 포인트를 얻지 못했다 ........ 나는 html에서 서브 노드에 액세스하려고 시도하고있다. –

+0

나의 나쁜, 쉬운 문제를 해결하고, 2를주고 나의 포스트가 업데이트 될 것이다. –

+0

비트 내가 내 질문을 편집했는데, 할아버지가 한 번 봐, 잘 할거야. –

0

가 확인 echo 이전의 값?

foreach($data as $node) 
{ 
    if(strlen($node->nodeValue) > 0) 
{ 
    echo $node->nodeName; 
    echo $node->nodeValue; 
} 
} 
+0

나는 너의 일하는 친구를 확인했다 –

관련 문제