Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.11.2008, 08:46
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

XSLT + AJAX
Что-то у меня каша в голове, не знаю с какой стороны подступиться.

Если мы просто используем xslt, то мы ссылаемся в xml на xsl-шаблон, который этот xml должен преобразовать.

А если мы получаем xml через ajax, тогда как это все работает?

Объясните пожалуйста. :rolleyes:
Ответить с цитированием
  #2 (permalink)  
Старый 28.11.2008, 09:37
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Делалось дааавноооо, так что не суди строго
var IE = (window.ActiveXObject) ? 1 : 0;
var NN = (window.XMLHttpRequest) ? 1 : 0;
 
var XMLdoc = new Object();
XMLdoc.loadFromFile = function (xml_name,xsl_name)
{
  if (IE)
  {
    var xml = new ActiveXObject('Microsoft.XMLDOM');
    var xsl = new ActiveXObject('Microsoft.XMLDOM');
    xml.async = false;
    xsl.async = false;
    xsl.load(xsl_name);
    xml.load(xml_name);
    this.html=xml.transformNode(xsl);
  }
  else if (NN)
  {
    var xsltProcessor = new XSLTProcessor();
    var myXMLHTTPRequest = new XMLHttpRequest();
    myXMLHTTPRequest.open('GET',xsl_name,false);
    myXMLHTTPRequest.send(null);
    var xslStylesheet = myXMLHTTPRequest.responseXML;
    xsltProcessor.importStylesheet(xslStylesheet);
    myXMLHTTPRequest = new XMLHttpRequest();
    myXMLHTTPRequest.open('GET',xml_name,false);
    myXMLHTTPRequest.send(null);
    var xml = myXMLHTTPRequest.responseXML;
    var fragment = xsltProcessor.transformToFragment(xml,document);
    var xmlser = new XMLSerializer();
    this.html = xmlser.serializeToString(fragment);
  }
}

XMLdoc.loadFromString = function (string,xsl_name)
{
  if (IE)
  {
    var xml = new ActiveXObject('Microsoft.XMLDOM');
    var xsl = new ActiveXObject('Microsoft.XMLDOM');
    xml.async = false;
    xsl.async = false;
    xsl.load(xsl_name);
    xml.loadXML(string);
    this.html=xml.transformNode(xsl);
  }
  else if (NN)
  {
    var xsltProcessor = new XSLTProcessor();
    var parser = new DOMParser();
    var myXMLHTTPRequest = new XMLHttpRequest();
    myXMLHTTPRequest.open('GET',xsl_name,false);
    myXMLHTTPRequest.send(null);
    var xslStylesheet = myXMLHTTPRequest.responseXML;
    xsltProcessor.importStylesheet(xslStylesheet);
    var xml = parser.parseFromString(string,'text/xml');
    var fragment = xsltProcessor.transformToFragment(xml, document);
    var xmlser = new XMLSerializer();
    this.html = xmlser.serializeToString(fragment);
  }
}

  XMLdoc.loadFromString(document.getElementById('mytxt').value,document.getElementById('myxsl').value);
  document.getElementById('main').innerHTML=XMLdoc.html;
Ответить с цитированием
  #3 (permalink)  
Старый 28.11.2008, 09:42
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

XSLTProcessor - это стандартный объект/класс?
Ответить с цитированием
  #4 (permalink)  
Старый 28.11.2008, 09:45
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

ага
Ответить с цитированием
  #5 (permalink)  
Старый 28.11.2008, 09:55
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Здорово, спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery Ajax Rater Plugin и массив POST - Нужна помощь TROODON jQuery 12 30.12.2009 22:44
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 16:06
AJAX и БД SunYang AJAX и COMET 3 06.06.2008 22:44
Ajax & Autorun Ergall-M AJAX и COMET 11 08.05.2008 15:33
как дождаться AJAX ответа scuter Общие вопросы Javascript 3 23.03.2008 05:54