С помощью XMLHttpRequest получается код HTML-документа. Обрабатывать его "вручную" очень неудобно/долго/неинтересно, поэтому хочется получить DOM-дерево страницы. Но т.к. это HTML, а не xml, то DOMParser использовать не получается.
Можно воспользоваться innerHTML или createContextualFragment, оба способа аналогичны, результат достигается. Но при этом проявляется очень существенный недостаток - подгружаются все картинки, внешние css-стили, js-скрипты, и другие встроенные в документ файлы - идет совершенно ненужный трафик. (

Так вот вопрос: можно ли избежать этого "паразитного" трафика? Может быть есть другие способы парсинга HTML-кода, про которые я не знаю?

Довольно экзотическое решение: http://xpoint.ru/forums/programming/XUL … 4395.xhtml

Попробовал loadURI ("data:text/html,...), но к сожалению, не совсем то. Стили и скрипты там не подгружались только из-за того, что пути к ним были относительно указаны. Если же путь абсолютный, то всё подгрузится. Таким образом преимущества никакого - при innerHTML файлы с относительными путями тоже не грузились.

Решение "в лоб": перед тем, как сделать innerHTML|createContextualFragment -- пройтись регулярками и поменять все import/src/data/href/.. (например, на _import/_src/_data/_href/_..)

Mash
Я тоже об этом думал. Правда хотел "http://" на "#http://" менять, но наверное, действительно лучше поменять имена атрибутов.

Случайно наткнулся на nsIStreamConverter. Если ещё актуально, то посмотрите в эту сторону, вдруг поможет.
P.S. Сам не пробовал.

Mash
Посмотрел, но что-то до меня никак не доходит, как это использовать на практике. :(

Насчёт nsIStreamConverter -- поторопился и ступил, категорически. :)

Вообще у меня мысль шла в направлении -- текст -> чистка -> работа с xml (т.е. далее пользуем DOMParser).

Пытался было посмотреть как Mozilla преобразовывает полученные данные в html/dom, но сходу не получилось, глаза уже красные. "mozilla_source\parser\htmlparser\" есть, а толку-то...

В принципе, стадию чистки можно пройти, прибегнув к сторонним средствам: tidy. С его помощью преобразовываем данные (текст) в корректный xhtml и спокойно используем DOMParser. Есть и исходники, и бинарники (там dll от силы килобайт на 300 выйдёт), и в расширениях уже давно используют... Другое дело, стоит ли заморачиваться с этим?

Mash

В принципе, стадию чистки можно пройти, прибегнув к сторонним средствам: tidy. С его помощью преобразовываем данные (текст) в корректный xhtml и спокойно используем DOMParser. Есть и исходники, и бинарники (там dll от силы килобайт на 300 выйдёт), и в расширениях уже давно используют... Другое дело, стоит ли заморачиваться с этим?

В теории это всё интересно конечно, но на практике действительно заморачиваться не стоит. :)
Замена имён атрибутов вполне подходит, так что можно считать задачу решенной.