Tôi duy trì cơ sở dữ liệu các bài viết có định dạng HTML. Đáng tiếc là các biên tập viên người viết bài không biết HTML thích hợp, vì vậy họ thường có những thứ được viết như sau:Làm cách nào để phân tích cú pháp HTML không hợp lệ với Perl?
<div class="highlight"><html><head></head><body><p>Note that ...</p></html></div>
Tôi đã cố gắng sử dụng HTML::TreeBuilder
để phân tích HTML này nhưng sau khi phân tích nó và bán phá giá cây kết quả, tất cả các yếu tố giữa <div class="highlight">...</div>
đã biến mất. Tôi chỉ còn lại <div class="highlight"></div>
.
Các biên tập viên thường cũng đã làm những việc như:
<div class="article"><style>@font-face { font-family: "Cambria"; }</style>Article starts here</div>
Phân tích này với HTML::TreeBuilder
kết quả trong rỗng <div class="article"></div>
một lần nữa.
Bất kỳ ý tưởng nào về cách tiếp cận HTML bị hỏng này và thực sự có ý nghĩa trong số đó?
Bạn đã thử xem nó dưới dạng xml chưa? Nó có thể không phải là html hợp lệ, nhưng bạn có thể chọn nó ngoài bằng cách sử dụng xpath. –
@BartonChittenden Chúc may mắn với điều đó. –