Một chút mới đối với việc phân tích cú pháp PHP ở đây, nhưng tôi dường như không thể lấy được tài liệu DomDocument của PHP để trả về một nút rõ ràng là gì. HTML nạp sẽ đến từ 'thuần như vậy có thể không nhất thiết phải đảm bảo tuân thủ XML, nhưng tôi thử như sau:PHP HTML DomDocument Các vấn đề về getElementById
<?php
header("Content-Type: text/plain");
$html = '<html><body>Hello <b id="bid">World</b>.</body></html>';
$dom = new DomDocument;
$dom->preserveWhiteSpace = false;
$dom->validateOnParse = true;
/*** load the html into the object ***/
$dom->loadHTML($html);
var_dump($dom);
$belement = $dom->getElementById("bid");
var_dump($belement);
?>
Mặc dù tôi không nhận lỗi, tôi chỉ nhận được sau khi đầu ra:
object(DOMDocument)#1 (0) {
}
NULL
Tôi không thể tra cứu thẻ <b>
vì nó thực sự có id không?
Tôi đã xác thựcOnParse. setIdAttribute chỉ áp dụng cho thiết lập và sau đó truy xuất tiếp theo? Một lần nữa, HTML sẽ được cung cấp trên web vì vậy tôi đang ở lòng thương xót của họ, nhưng chỉ cần thử một ví dụ. HTML5 thậm chí không có DTD, phải không? – Xailor
"setIdAttribute chỉ áp dụng cho thiết lập và sau đó truy xuất tiếp theo?" -> Có. HTML5 chưa hoàn thành nên chưa có DTD. –
DTD sẽ là '', nhưng chỉ cần gọi '$ dom-> validate()' cũng sẽ hoạt động.Đưa ra các lỗi hoặc cố gắng để tạo ra HTML hợp lệ (sau này là khó khăn hơn có vẻ như ... :)) – Wrikken