2011-02-16 8 views
2

DOM을 사용하여 다른 페이지를 구문 분석 할 수 있습니다. 의 hrefs, imgsPHP를 사용하여 html 구문 분석

을 검색 할 수 있습니다. 어떻게 이걸 파싱해야합니까? 당신이 DOMElement이 가정

<span class="abc up" id="price">+9395</span> 
+1

당신이 나가 무엇을 원하는가 사용? – Jacob

+0

vlaue : +9395 – ineedhelp

+0

HTML 문서에 포함되어 있습니까? 샘플 사례를 볼 필요가 있습니다. 당신이 그것의 계급이나 신분으로 그것을 식별합니까? – Jonah

답변

3

, 당신은 nodeValue를 속성에 액세스하여 값을 얻을 ... 아래 예 :

<?php 
$doc = new DOMDocument(); 
$doc->loadHTML('<span class="abc up" id="price">+9395</span> '); 

$elements = $doc->getElementsByTagName('span'); 

echo $elements->item(0)->nodeValue; 

나는 이미 노드가 ... 알리스 테어 당신이 말했듯이 발견했다고 가정 XPath를 사용할 수 있습니다.

$xpath = new DOMXPath($doc); 
$spans = $xpath->query('//span[@id="price"]'); 
echo $spans->item(0)->nodeValue; 

http://de.php.net/manual/en/domxpath.query.php

는 XPath는 당신이 다양한 최신 브라우저를 사용하여 원하는 요소에 고유 한 경로도 찾아보실 수 있습니다 확인하십시오.

+0

@Jonah : 정확히 – ineedhelp

+0

@Jacob : 스팬이 여러 개있는 경우에는 어떻게해야합니까? ... ??? - getElementsBy (TagName 또는 Class)와 getElementById ???의 조합을 수행 할 수 있습니까? – ineedhelp

+0

감사합니다, 새로운 것을 배웠습니다. – DhruvPathak

0

아니면 너무 XPath를 사용하여 할 수있는 : 스팬 요소에 대한 모든 값을 표시합니다

<?php 
$html = '<span class="abc up" id="price">+9395</span>'; 

$document = new DOMDocument(); 
$document->loadHTML($html); 
$xpath = new DOMXPath($document); 

$results = $xpath->query('//span'); 

foreach($results as $result) { 
    echo $result->nodeValue . PHP_EOL; 
} 

. id로 검색하려면 // span [@ id = "price"] 클래스와 // span [@ class = "abc up"]을 사용하십시오.

+0

스팬이 많으면 어떻게 될까요? ??? 다음과 같이 조합 할 수 있습니까? - getElementsBy (TagName 또는 Class)와 getElementById ?? – ineedhelp

+0

고맙다 친구. .. 그것은 완전했다! !! – ineedhelp

1

HTML (또는 XML) , 당신은 매우 사소한에 대한 지능적 그러나 등 DOMDocument를 또는 QueryPath, 또는 XPath를 같이, DOM을 통과 할 수있는 일,해야합니다 경우를-이는 것으로 보인다 일 - 당신은 단순히 strip_tags 사용할 수 있습니다

echo strip_tags('<span class="abc up" id="price">+9395</span>'); 

생산량은 +9395입니다.

+0

그 gr8 ... 간단하고 완벽한 – ineedhelp

+0

사소한 경우 ?? – ineedhelp

+0

'strip_tags'에 전달할 문자열에이 값을 사용할 수있는 값이 있어야하기 때문에 사소한 경우가 있습니다. 예를 들어 ' +9395

다른 데이터

'을 전달하면 원하지 않는'+ 9395 다른 데이터 '가 반환됩니다. – Ori

0

좋은 simple html dom는 CSS3 스타일의 선택기를 사용

//turn the html into a dom object: 
$html = str_get_html('<span class="abc up" id="price">+9395</span>'); 

//find the first element with id "price": 
$node->find('#price', 0); 

//grab its inner text: 
echo $node->innertext; 

+0

u는 내가 일할 수있는 기지를 주었다 .. 고맙습니다. – ineedhelp