У нас есть специальное требование в проекте, где мы должны проанализировать строку HTML (из ответа AJAX) на стороне клиента только через JavaScript . Правильно нет синтаксического анализа в PHP или Java! Я проходил StackOverflow всю неделю и пока не нашел приемлемого решения.
Более подробная информация о требованиях:
Мы можем использовать любую библиотеку (предпочтительно dojo и / или jQuery) или перейти на родную!
Нам нужно проанализировать Весь HTML-документ, который мы получаем в виде строки , включая <head>
и <body>
.
Нам также нужно периодически сериализовать проанализированные структуры DOM в строки.
Наконец, Мы не хотим добавлять проанализированный DOM к текущему документу. Вместо этого мы отправим его обратно на сервер для постоянного хранения.
Например: нам нужно что-то вроде
var dom = HTMLtoDOM('<html><head><title> This is the old title. </title></head></html>');
dom.getElementsByTagName('title')[0].innerHTML = "This is a new Title";
С моим исследованием, это наши варианты:
A TinyMCE Parser . Проблема? Мы должны обязательно включить редактора, я думаю. Как насчет разбора HTML, когда нам не нужен редактор?
Парсер Джона Ресига . Должно быть нашим лучшим выбором. К сожалению, синтаксический анализатор падает, когда ему передается все содержимое страницы!
jQuery $ (htmlString) или dojo.toDom (htmlString). Оба полагаются на DocumentFragment и, следовательно, поглощают <head>
и <body>
!
EDIT : мы хотим сериализовать HTML, чтобы мы могли перехватывать определенные пользовательские HTML-коммнеты через RegExp. Нам нужно дать пользователям возможность редактировать мета-теги, теги заголовков и т. Д., Следовательно, парсер HTML
Да, и я чувствую, что меня убьют в переполнении стека, даже если я просто намек при разборе HTML через RegExp !!!