2011-08-02 3 views
3

기본적으로 두 개의 span 태그 사이에 텍스트를 가져와야하며 솔루션없이 여러 가지 방법을 시도했습니다. Simple HTML DOM Parser (http://simplehtmldom.sourceforge.net/)도 사용하고 있습니다. 따라서 할 수있는 일은 조금 제한되어 있습니다. 다음은 기본 설정입니다."Simple HTML DOM"으로 두 스팬 사이의 텍스트 얻기

<span class=1>text here</span> TEXT I NEED TO GET <span class=2>more text</span> 

도움이 필요하십니까?

답변

5

텍스트 스팬 요소에 DOMTextNode 및 형제이어야한다. 이 나던 작품은, 예를 들어, libxml을 기반으로하는 더 적절한 파서를 사용하는 것을 고려하면

$text = $html->find('span[class=1]', 0)->next_sibling(); 

: SimpleHTMLDom은 당신이 그것을 얻을 수있을 것입니다 DOM specs 다음 경우

+2

두 번째 스팬을 반환합니다. 새 파서에 대한 코드를 다시 작성해야합니다. – spykr

0

PHP Dom을 시도 스팬 소자 사이

$dom = new DomDocument; 
$dom->loadHtml(' 
    <span class=1>text here</span> TEXT I NEED TO GET <span class=2>more text</span> 
'); 

$xpath = new DomXpath($dom); 
foreach ($xpath->query('//body/text()') as $textNode) { 
    echo $textNode->nodeValue; // will be: ' TEXT I NEED TO GET ' 
} 
+0

무엇 loadHTML은 HTML 조각을 처리합니다. – Gordon

+0

@Gordon 당신 말이 맞을지 모르지만이 주제가 닫혀있는 것 같습니다. ;) – Yoshi

0

발견 ('텍스트', $ 지수)

이 당신에게 텍스트 블록을 줄 것이다을 참조하십시오.

이 시도 :

출력 :

TEXT I NEED TO GET 

DEMO

당신은 몰라요 때 XPath를 비 명백하기 때문에 당신은 그 몇 가지 설명을 추가 할 수 있습니다
관련 문제