2013-06-16 25 views
8

Tôi đang sử dụng XPath để truy vấn vào tài liệu HTML, nơi có được sau div có văn bản:Đúng truy vấn XPath để lấy div văn bản bên trong

<div class="h1">2008 Honda Accord Coupe<small> — Wuse II</small></div> 

tôi muốn lấy chỉ các văn bản bên trong của <div class="h1">2008 Honda Accord Coupe và không bao gồm <small>inner text</small>

Tôi đang thực hiện truy vấn XPath sau đây: //div[@class='h1'] chắc chắn sẽ trả lại toàn bộ nút <div>...</div>.

Làm thế nào tôi có thể chỉ lấy phần mà không <small>...</small>

nhờ

+0

Trừ khi bạn không chỉ định trình phân tích cú pháp XML nào bạn đang sử dụng thì khó nói. Ví dụ. với SimpleXML bạn chỉ cần chuyển đổi phần tử đó thành chuỗi và nó được thực hiện. Với DOMDocument, bạn có thể truy vấn nút văn bản như One Trick Pony đã hiển thị. Nhưng câu trả lời đúng là: Nó phụ thuộc vào thư viện/phân tích cú pháp bạn sử dụng. Bạn không nói cái nào, do đó khó trả lời vì thiếu thông tin. – hakre

Trả lời

0

Bạn có thể tới nó như thế này:

$name = trim($xpath->query('//div[@class="h1"]')->item(0)->childNodes->item(0)->nodeValue); 

var_dump($name); 
Các vấn đề liên quan