Страницы: 1
С помощью XMLHttpRequest получается код HTML-документа. Обрабатывать его "вручную" очень неудобно/долго/неинтересно, поэтому хочется получить DOM-дерево страницы. Но т.к. это HTML, а не xml, то DOMParser использовать не получается.
Можно воспользоваться innerHTML или createContextualFragment, оба способа аналогичны, результат достигается. Но при этом проявляется очень существенный недостаток - подгружаются все картинки, внешние css-стили, js-скрипты, и другие встроенные в документ файлы - идет совершенно ненужный трафик. (
Так вот вопрос: можно ли избежать этого "паразитного" трафика? Может быть есть другие способы парсинга HTML-кода, про которые я не знаю?
Отсутствует
Довольно экзотическое решение: http://xpoint.ru/forums/programming/XUL … 4395.xhtml
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Попробовал loadURI ("data:text/html,...), но к сожалению, не совсем то. Стили и скрипты там не подгружались только из-за того, что пути к ним были относительно указаны. Если же путь абсолютный, то всё подгрузится. Таким образом преимущества никакого - при innerHTML файлы с относительными путями тоже не грузились.
Отсутствует
Решение "в лоб": перед тем, как сделать innerHTML|createContextualFragment -- пройтись регулярками и поменять все import/src/data/href/.. (например, на _import/_src/_data/_href/_..)
Отсутствует
Насчёт nsIStreamConverter -- поторопился и ступил, категорически.
Вообще у меня мысль шла в направлении -- текст -> чистка -> работа с xml (т.е. далее пользуем DOMParser).
Пытался было посмотреть как Mozilla преобразовывает полученные данные в html/dom, но сходу не получилось, глаза уже красные. "mozilla_source\parser\htmlparser\" есть, а толку-то...
В принципе, стадию чистки можно пройти, прибегнув к сторонним средствам: tidy. С его помощью преобразовываем данные (текст) в корректный xhtml и спокойно используем DOMParser. Есть и исходники, и бинарники (там dll от силы килобайт на 300 выйдёт), и в расширениях уже давно используют... Другое дело, стоит ли заморачиваться с этим?
Отредактировано Mash (02-03-2006 01:24:39)
Отсутствует
Mash
В принципе, стадию чистки можно пройти, прибегнув к сторонним средствам: tidy. С его помощью преобразовываем данные (текст) в корректный xhtml и спокойно используем DOMParser. Есть и исходники, и бинарники (там dll от силы килобайт на 300 выйдёт), и в расширениях уже давно используют... Другое дело, стоит ли заморачиваться с этим?
В теории это всё интересно конечно, но на практике действительно заморачиваться не стоит.
Замена имён атрибутов вполне подходит, так что можно считать задачу решенной.
Отсутствует
Страницы: 1