2011-06-19 16 views
24

में नोड का टेक्स्ट प्राप्त करना PHP DOM का उपयोग करके इस मार्कअप से स्ट्रिंग "टेक्स्ट" को कैसे निकाला जा सकता है?PHP DOM

<div><span>notthis</span>text</div> 

$div->nodeValue तो जब तक आप डोम प्रभावित कर सकते हैं "notthis"

उत्तर

18

भी शामिल है, आपको लगता है कि span को दूर कर सकता है।

$span = $div->getElementsByTagName('span')->item(0); 
$div->removeChild($span); 

$nodeValue = $div->nodeValue; 

वैकल्पिक रूप से, बस $div के टेक्स्ट नोड तक पहुंचें।

foreach($div->childNodes as $node) { 

    if ($node->nodeType != XML_TEXT_NODE) { 
     continue; 
    } 
    $nodeValue = $node; 
} 

आप अधिक पाठ नोड के साथ खत्म हो और केवल पहले, आप break कर सकते हैं के बाद $nodeValue का पहला काम चाहते हैं।

26

आप सीधे XPath का उपयोग कर DOMText नोड पहुँच सकते हैं:

$xpath = new DOMXPath($dom_document); 
$node = $xpath->query('//div/text()')->item(0); 
echo $node->textContent; // text