2013-06-09 34 views
11

Tôi có tài liệu mà từ đó tôi muốn trích xuất div cụ thể với nội dung không bị ảnh hưởng của nó. tôi làm: truy vấnCách nhận HTML đầy đủ từ phương thức DOMXPath :: query()?

$dom = new DOMDocument(); 
$dom->loadHTML($string);//that's HTML of my document, string 

và xpath:

$xpath = new DOMXPath($dom); 
$xpath_resultset = $xpath->query("//div[@class='text']"); 
/*I'm after div class="text"*/ 

bây giờ tôi làm item(0) phương pháp trên những gì tôi nhận được với $xpath_resultset

$my_content = $xpath_resultset->item(0); 

những gì tôi nhận được là đối tượng (không dây) $ my_content mà tôi có thể echo hoặc settype() để string, nhưng kết quả là tôi nhận được là với đánh dấu hoàn toàn tước?

Việc cần làm để nhận tất cả từ div class = 'text' tại đây?

+0

Bạn đã thử phương pháp 'saveXML' /' saveHTML' chưa? –

+0

Lỗi nghiêm trọng: Gọi đến phương thức chưa xác định DOMElement :: saveHTML() trong C: \ wamp \ www \ 3 \ test.php trên dòng 17. Tôi đã làm ... –

+0

Sau đó, hoặc nâng cấp PHP hoặc sử dụng 'saveXML' thay thế. –

Trả lời

29

Chỉ cần vượt qua nút với phương pháp DOMDocument::saveHTML:

$htmlString = $dom->saveHTML($xpath_resultset->item(0)); 

này sẽ cung cấp cho bạn một chuỗi đại diện rằng DOMNode nói riêng và tất cả các con của nó.

+0

Đúng. Cảm ơn bạn đã trả lời. –

+6

Phương thức đó yêu cầu PHP 5.3.6, một cách khác là sử dụng DOMDocument :: saveXML chỉ yêu cầu PHP 5. – Kyle

Các vấn đề liên quan