Hướng dẫn how do i parse a string in html? - làm cách nào để phân tích cú pháp một chuỗi trong html?
Hôm qua, tôi đã viết về rạn san hô, sự thay thế nhẹ của tôi cho Vue và React. Trong vài ngày tới, tôi muốn xem cách các phần khác nhau của nó hoạt động dưới thời trang. Show Hôm nay, chúng tôi sẽ xem xét cách lấy một chuỗi HTML và chuyển đổi nó thành đánh dấu thực tế. Tại sao bạn cần điều nàyNếu bạn muốn tiêm một chuỗi vào DOM, bạn có thể làm điều đó khá đơn giản với
Nhưng rạn san hô không chỉ đẩy đánh dấu vào một yếu tố. Nó so sánh đánh dấu hiện có trong một yếu tố với cách nhìn và chỉ cập nhật những thứ cần thay đổi. Ví dụ: nếu nội dung hiện có bên trong Rạn san hô sẽ chỉ cập nhật văn bản bên trong 0 thay vì tạo một yếu tố hoàn toàn mới.Để nó hoạt động, chúng ta cần chuyển đổi chuỗi HTML thành các phần tử HTML thực tế có thể đi qua, ánh xạ và phân tích. Tạo phương pháp trợ giúpĐầu tiên, hãy để tạo ra một hàm trợ giúp sẽ chấp nhận một chuỗi và trả về HTML.
Cách tiếp cận đơn giảnCách đơn giản nhất để làm điều này là tạo một phần tử, chèn chuỗi vào với
Cách tiếp cận này là hoàn hảo, mặc dù. Mặc dù yếu tố này được tách ra, đó là, không thực sự trong DOM hiện tại, trình duyệt vẫn sẽ làm những việc như tải xuống các tệp hình ảnh. Điều này sẽ kích hoạt một tệp hình ảnh để tải xuống, mặc dù đánh dấu không được hiển thị ở bất cứ đâu.
Một cách tốt hơnSau khi thực hiện một loạt các nghiên cứu, tôi đã phát hiện ra một phương pháp trình duyệt gốc để tránh vấn đề này: 2. Đối tượng 2 tạo một tài liệu DOM mới từ một chuỗi.Để sử dụng nó, bạn khởi tạo một thể hiện mới. Sau đó, bạn sử dụng phương thức 4 để chuyển đổi chuỗi của mình thành phần tử 5 mới. Phương thức chấp nhận chuỗi khi nó đối số đầu tiên. Đặt đối số thứ hai thành 6.Bởi vì nó có nghĩa đen là một yếu tố 5 mới, chúng tôi sẽ trả lại 8.
Bây giờ chúng ta có thể làm điều này, và không có tải xuống sẽ được kích hoạt.
Kết hợp hai cách tiếp cậnPhương pháp 2 là tuyệt vời, nhưng phương pháp 4 dừng ở IE10.Tôi thích kết hợp hai cách tiếp cận, sử dụng 2 khi nó được hỗ trợ và rơi trở lại để tạo ra một yếu tố và sử dụng innerHTML khi nó không.Để kiểm tra hỗ trợ, chúng tôi sẽ chỉ định một iife cho biến 3.Bên trong iife, trước tiên chúng tôi sẽ kiểm tra xem 4 có tồn tại trong 5 không. Nếu không, chúng tôi sẽ trả lại 6. Tiếp theo, chúng tôi sẽ cố gắng sử dụng 4 để tạo 5. Nếu nó thất bại, chúng tôi sẽ trả lại 6. Nếu không, chúng tôi sẽ trở lại 0.
Bên trong phương pháp 1 của chúng tôi, chúng tôi sẽ sử dụng 2 một cách có điều kiện khi nó hỗ trợ và innerHTML khi nó không.
Ở đây, một bản demo trên Codepen để bạn chơi xung quanh. Ngày mai, chúng tôi sẽ xem xét cách tạo bản đồ các nút dom mà chúng tôi có thể sử dụng cho Dom Diffing. Làm thế nào để bạn phân tích văn bản trong html?Ví dụ sau đây sẽ giới thiệu việc sử dụng các phương thức để lấy văn bản sau khi phân tích chuỗi HTML vào đối tượng tài liệu ... Cú pháp. Tài liệu tài liệu = jsoup.parse (html); Phần tử link = document.select ("a"). First (); System.out.println ("Text:" + link.text ()); .... Sự mô tả. .... Thí dụ. .... Xác minh kết quả .. Làm thế nào để bạn chuyển đổi một chuỗi trong HTML?Cách đơn giản nhất để làm điều này là tạo một phần tử, chèn chuỗi vào bên trong, sau đó trả về phần tử. .create an element, insert the string into with innerHTML , then return the element. /** * Convert a template string into HTML DOM nodes * @param {String} str The template string * @return {Node} The template HTML */ var stringToHTML = function (str) { var dom = document.
Parse trong HTML là gì?Phân tích phân tích có nghĩa là phân tích và chuyển đổi một chương trình thành một định dạng nội bộ mà môi trường thời gian chạy thực sự có thể chạy, ví dụ như công cụ JavaScript bên trong các trình duyệt.Trình duyệt phân tích cú pháp HTML vào cây dom.analyzing and converting a program into an internal format that a runtime environment can actually run, for example the JavaScript engine inside browsers. The browser parses HTML into a DOM tree.
Trình phân tích cú pháp HTML tốt nhất là gì?Những người biểu diễn tốt nhất là Golang và C với kết quả rất giống nhau.Python libxml2 hoạt động khá tốt.Tốc độ Ruby tương tự như Python.Golang and C with very similar results. Python LIBXML2 performs fairly well. Ruby speed is similar to Python. |