Синтаксический анализатор JavaScript для DOM

У нас есть особое требование в проекте, где мы должны анализировать строку HTML (из ответа AJAX) на стороне клиента только через JavaScript. Верно никакого синтаксического анализа в PHP или Java! Я просматривал StackOverflow всю эту неделю и до сих пор не нашел приемлемого решения.

Подробнее о требованиях:

  • Мы можем использовать любую библиотеку (предпочтительно dojo и/или jQuery) или сделать ее нативной!

  • Нам нужно проанализировать весь HTML-документ, который мы получаем в виде строки, включая и .

  • Нам также иногда нужно сериализовать проанализированные структуры DOM в строки.

  • Наконец, мы не хотим добавлять проанализированный DOM к текущему документу. Скорее, мы отправим его обратно на сервер для постоянного хранения.

  • Например: нам нужно что-то вроде

    var dom = HTMLtoDOM(' This is the old title. ');
        dom.getElementsByTagName('title')[0].innerHTML = "This is a new Title";
    

    В моем исследовании у нас есть следующие варианты:

    1. Парсер TinyMCE. Проблема? Нам нужно обязательно включить редактора, я думаю. Как насчет синтаксического анализа HTML, где нам не нужен редактор?

    2. Парсер Джона Резига. Должно быть нашим лучшим выбором. К сожалению, парсер падает, когда ему отдается все содержимое страницы!

    3. JQuery $(htmlString) или dojo.toDom(htmlString). Оба полагаются на DocumentFragment и, следовательно, поглощают и !

    РЕДАКТИРОВАТЬ : Мы хотим сериализовать HTML, чтобы мы могли перехватывать определенные пользовательские HTML-комментарии через RegExp. Нам нужно дать пользователям возможность редактировать метатеги, теги заголовков и т. д., следовательно, синтаксический анализатор HTML.

    О, и я чувствую, что меня убьют в Stack Overflow, даже если я просто намекну на синтаксический анализ HTML через RegExp!!!

6
задан Gaurav Ramanan 2 March 2012 в 21:15
поделиться