Tôi đang gặp một số sự cố khi biết chính xác những gì được lưu trữ trong ChildNodes. Lý tưởng nhất là tôi muốn làm một xquery trên mỗi nút con, nhưng dường như không thể làm cho nó thẳng. Đây là kịch bản của tôi: dữ liệu:Duyệt qua các nút con bằng DOMXpath PHP?
<div class="something">
<h3>
<a href="link1.html">Link text 1</a>
</h3>
<div class"somethingelse">Something else text 1</div>
</div>
<div class="something">
<h3>
<a href="link2.html">Link text 2</a>
</h3>
<div class"somethingelse">Something else text 2</div>
</div>
<div class="something">
<h3>
<a href="link3.html">Link text 3</a>
</h3>
<div class"somethingelse">Something else text 3</div>
</div>
Và mã:
$html = new DOMDocument();
$html->loadHtmlFile($local_file);
$xpath = new DOMXPath($html);
$nodelist = $xpath->query("//div[@class='something']");
foreach ($nodelist as $n) {
Can I run another query here? }
Đối với mỗi phần tử của "cái gì đó" (ví dụ, $ n) Tôi muốn truy cập các giá trị của hai đoạn văn bản và href. Tôi đã thử sử dụng childNode và xquery khác nhưng không thể nhận được bất cứ điều gì để làm việc. Mọi sự trợ giúp sẽ rất được trân trọng!
Cảm ơn @TrexXx, nhưng khi tôi sử dụng "$ other_nodes-> nodeValue" Tôi không thấy gì cả. Điều đó không bắt đầu trở lại ở phần tử gốc? Ban đầu tôi nghĩ nó sẽ giống như thế này: '$ other_nodes = $ n-> query ('div [@ class =" somethingelse "]')'; – Bryan
'$ other_nodes' là một danh sách nút, vì vậy trước tiên bạn sẽ phải nhận được một mục (một nút) và sau đó nhận được giá trị của nó. Một cái gì đó như '$ other_nodes-> item (0) -> nodeValue'. – TrexXx
'$ other_nodes' kết thúc chứa thông tin từ bên ngoài' $ n' (tức là từ các yếu tố "thứ gì đó" khác); nó không phải là cách, phải không? Bạn có biết cách tiếp cận nào khác không yêu cầu quay lại truy vấn phần tử gốc không? – Bryan