Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > заставить браузер заново обработать XML по XSL тс


Автор: vie 28.1.2011, 00:26
Помогите пожал., уже долго ищу не могу 
Как заставить браузер заново обработать XML по XSL таблице стилей ч/з JavaScript?

т.е. есть XML документ часть которого иногда меняеться JavaScript'ом через примерно такую процедуру
Код
document.getElementById("ид").innerHTML = document.getElementById("ид").innerHTML + "<тэг_описанный_в_xsl>элемент</тэг_описанный_в_xsl>"

при загрузке страницы содержимое выглядит правильно, после изменения(добавления тэга),все содержимое не обрабатываеться xsl табл.стил. и выводиться неправильно

есть способ что я перезагружаю страницу с сервера с такими изменениями и она отоброжаеться верно,но это не дело :(

маленький архивчик.. в нем сама работа (кстати интересная =))  http://depositfiles.com/files/8xlh529qs



Автор: diadiavova 28.1.2011, 00:49
Когда хмл-документ поступает в браузер, он трансформируется в хтмл и только после прорисовывается. При этом исходный документ в принципе недоступен из скрипта, поэтому непонятно, каким образом ты в нем что-то меняешь. 

Если тебе нужно динамически менять содержимое документа, просто меняй хтмл, который получился в результате преобразования.

Автор: Се ля ви 28.1.2011, 11:21
Есть проект AJAXSLT от Google`а. Не совсем доделанный, но как-то видимо работает. Это библиотека преобразования XSL именно JavaScript`ом. Не пробовал с ней работать, но по идее должна выполняться нормально.

Тогда ты сможешь подгружать именно XML, транслировать его через JS в страницу, а при желании что-то изменить - менять висящий в памяти XML и прогонять XSL-трансформацию заново. Это будет лучше, чем перезагружать страницу с сервера, но всё равно в реалтайме ты не добъёшься изменения документа - прогонять XSL-трансформацию придётся полностью.

P.S. Можно ещё вскрыть исходники XSL-преобразования Chromium`а или FireFox`а - наверняка они на JavaScript (в этих браузерах всё на JS стараются делать) и вставить себе - наверняка они окажутся более адекватны, чем AJAXSLT.

Автор: vie 30.1.2011, 14:01
2diadiavova хтмл,когда меняешь он отображаеться без обработки xsl таблицей
2Се ля ви спасибо щас гляну

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)