2012-09-20 9 views
6

के साथ div की सामग्री प्राप्त करें xpath का उपयोग करने के लिए सही वाक्यविन्यास एक निश्चित वर्ग के साथ सभी divs की सामग्री प्राप्त करने के लिए क्या है? मुझे divs मिल रहा है लेकिन मुझे नहीं पता कि उनके आंतरिक HTML कैसे प्राप्त करें।php xpath कक्षा

 $url = "http://www.vanityfair.com/politics/2012/10/michael-lewis-profile-barack-obama"; 

    $ctx  = stream_context_create(array('http'=> array('timeout' => 10))); 

    libxml_use_internal_errors(TRUE); 
    $num = 0; 

    if($html = @file_get_contents($url,false,$ctx)){ 

     $doc = DOMDocument::loadHTML($html); 
     $xpath = new DOMXPath($doc); 

     foreach($xpath->query('//div[@class="page-display"]') as $div){ 
      $num++; 
      echo "$num. "; 

      //???? 

      echo "<br/>"; 
     } 

     echo "<br/>FINISHED"; 

    }else{ 
     echo "FAIL"; 
    } 
+0

आप की कोशिश की है '$ div-> nodeValue' या' $ div-> textContent' – Musa

+0

यकीन किया था, कोई भाग्य – David

उत्तर

6

कक्षा में कोई HTML नहीं है = "पृष्ठ प्रदर्शन" divs - तो आप नहीं कुछ भी पाने के लिए जा रहे हैं।

क्या आपका मतलब कक्षा प्राप्त करें = "parbase cn_text"?

foreach($xpath->query('//div[@class="parbase cn_text"]') as $div){ 
     $num++; 
     echo "$num. "; 

     //???? 
     echo $div->textContent; 

     echo "<br/>"; 
    } 
+0

वाह, मैं मूर्ख हूँ। यह काम करता है, लेकिन वर्ग "शरीर" कैसे काम नहीं करता है? – David

+0

आपका मतलब "शरीर" है? ("शरीर [अंतरिक्ष]") – Robbie

+0

ओह डांग, रिक्त स्थान गिनती है? यह परेशान करने वाला है। तो यदि आपके पास कक्षा 1 के साथ 4 divs थे। "बॉडी टेस्ट" 2. "टेस्ट बॉडी उदाहरण" 3. "उदाहरण टेस्ट बॉडी" 4. "बॉडी" आपको "बॉडी", "बॉडी", "बॉडी" पर पूछताछ करने की आवश्यकता होगी , और शरीर"? – David