Модераторы: diadiavova

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML внутри HTML кода. 
V
    Опции темы
Exception
Дата 5.4.2007, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 3
Всего: 186



Вроде как в опере меньше 9.0 xsl не работает. Впрочем, никто не мешает делать преобразование на сервере smile . Правда, это уже в форум по PHP.
PM   Вверх
ShurikA
Дата 5.4.2007, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(Exception @  5.4.2007,  13:49 Найти цитируемый пост)
Вроде как в опере меньше 9.0 xsl не работает

и только там?

Вопрос на самом деле в другом:
имеет ли смысл делать саит на XML? или же всё таки пока рано?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
sergejzr
Дата 5.4.2007, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Цитата(Exception @  5.4.2007,  11:49 Найти цитируемый пост)
Я что не пойму -- почему тебе не хочется сделать енто по-человечески:

У меня есть UseCase. Это если для разных фрагментиков разные XSLT нужны.

Вот всё думаю, как MathML в HTML оптимально вставить, чтобы формулы отображать. Получится тогда такой XML в XML. Только XSLT внешнего отлично от внутреннего. Поэтому и хотелось бы всё без скриптов, так сказать нативно...

Добавлено через 57 секунд
Цитата(ShurikA @  5.4.2007,  13:52 Найти цитируемый пост)
опрос на самом деле в другом:
имеет ли смысл делать саит на XML? или же всё таки пока рано? 

Имеет и давно пора! На сервере разбираешься, кому в каком виде отдавать и никаких проблем не будет smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
ShurikA
Дата 5.4.2007, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



sergejzr, а как на счёт AJAX-a? удобно ли работать с XML через АJAX?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
sergejzr
Дата 5.4.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



АЯКС - это то же скрипт.
Удобно и тоже желательно использовать. Правда нельзя забывать и о тех, у кого скрипты отключены. Т.е сайт должен работать и у них без проблем.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
ShurikA
Дата 5.4.2007, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(sergejzr @  5.4.2007,  14:13 Найти цитируемый пост)
АЯКС - это то же скрипт.
Удобно и тоже желательно использовать. Правда нельзя забывать и о тех, у кого скрипты отключены. Т.е сайт должен работать и у них без проблем.

я имел в виду другое: на сколько удобно нанипулировать XML-ем с помощью AJAX-a?
Обычно ползуются innerHtml чтобы заменить кусок HTML-a в страничке. А что происходит с XML? как его кусок менять?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
Exception
Дата 5.4.2007, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 3
Всего: 186



Цитата(sergejzr @  5.4.2007,  15:54 Найти цитируемый пост)
Это если для разных фрагментиков разные XSLT нужны.


Немного не понял мысль. Поясни. То есть скажем у нас две панели со ссылками, и для каждой нужен xsl?

Добавлено через 2 минуты и 10 секунд
Цитата(ShurikA @  5.4.2007,  16:16 Найти цитируемый пост)
я имел в виду другое: на сколько удобно нанипулировать XML-ем с помощью AJAX-a?


Полностью smile .

http://google.com/search?q=xml+dom+javascript
PM   Вверх
ShurikA
Дата 5.4.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(Exception @  5.4.2007,  14:17 Найти цитируемый пост)
Полностью  .

http://google.com/search?q=xml+dom+javascript 

и опять же возвращаемся к тому что нужно парсить XML, грубо говоря, ручками; вместо того чтобы просто подменить дату подчодящую под определённый XSL... или я ошибаюсь?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
Exception
Дата 5.4.2007, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 3
Всего: 186



Не понял фразу
Цитата(ShurikA @  5.4.2007,  16:29 Найти цитируемый пост)
подменить дату подчодящую под определённый XSL... 


Добавлено через 9 минут и 10 секунд
Ты имеешь в виду - динамически загрузить xml и применить к нему xsl? Енто делается легко.
PM   Вверх
ShurikA
Дата 5.4.2007, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(Exception @  5.4.2007,  14:39 Найти цитируемый пост)
Не понял фразу

Допустим есть вот такой HTML:
Код

            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
                <title>Admin Panel</title>
                <link rel="stylesheet" href="http://localhost/ImageryFair/admin/css/admin.css" />
                <script src="http://localhost/ImageryFair/admin/jscripts/admin_global.js"></script>
            </head>
            <body>
                <div id="apl">
                </div>
            </body>
        </html>
    


через AJAX получаем HTML код (response) и вставляем:
Код

document.getElementById("apl").innerHtml = response;

тут всё понятно...

теперь посмотрим на случай с XML:
XSL:
Код

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
    <xsl:template match="/">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
                <title>Admin Panel</title>
                <link rel="stylesheet" href="http://localhost/ImageryFair/admin/css/admin.css" />
                <script src="http://localhost/ImageryFair/admin/jscripts/admin_global.js"></script>
            </head>
            <body>
                <div class="apl" id="apl">
                    <xsl:apply-templates select="APLinks" />
                </div>
            </body>
        </html>
    </xsl:template>
    <xsl:template match="APLinks">
        <table class="apl">
            <xsl:for-each select="lin">
                <tr>
                    <td>
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="addr"/>
                            </xsl:attribute>
                            <xsl:value-of select="name"/>
                        </a>
                    </td>
                </tr>
            </xsl:for-each>
        </table>
    </xsl:template>
</xsl:stylesheet>

XML:
Код

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href="myxsl.xsl"?>
<APLinks>   
    <lin>
            <addr>index.php</addr>
            <name>Main</name>
    </lin>            
    <lin>
            <addr>login.php?act=logout</addr>
            <name>Logout</name>
    </lin>
</APLinks>

В результате созадётся список линков.
Далее, если я хочу поменять этот список линков ->

получаю XML код через AJAX  (xmlCode) =>

а вот тут вопрос и есть:
один вариант это создать JavaScript-ом HTML код и таким же образом (как показанно выше) запихать в <div id="apl"></div>.

вариант второй: обновить XML data (или её часть)... - возможно ли?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
Exception
Дата 5.4.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 3
Всего: 186



Цитата(ShurikA @  5.4.2007,  17:01 Найти цитируемый пост)
вариант второй: обновить XML data (или её часть)... - возможно ли? 


С помощью XMLHttpRequest асинхронно получаешь XML и XSL с сервера, с помощью XSLTProcessor получаешь итоговый код и вставляешь его куда тебе нужно.

Добавлено через 47 секунд
Примеры -- в гугле smile .
PM   Вверх
sergejzr
Дата 5.4.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Цитата(Exception @  5.4.2007,  14:17 Найти цитируемый пост)
Немного не понял мысль. Поясни. То есть скажем у нас две панели со ссылками, и для каждой нужен xsl?

Да. Допустим у нас есть сайт и вместо фреймов отдельные ХМЛ- документы. 
Конкретно я о вставки MathML в XHtml.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
ShurikA
Дата 5.4.2007, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Exception
sergejzr
то есть результирующий код должен быть типа:
Код

        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
                <title>Admin Panel</title>
                <link rel="stylesheet" href="http://localhost/ImageryFair/admin/css/admin.css" />
                <script src="http://localhost/ImageryFair/admin/jscripts/admin_global.js"></script>
            </head>
            <body>
                <div id="apl">
                   <-- XML CODE с прикрученным XSL --> 
                </div>
            </body>
        </html>



если да, то вернёмся на первый пост этого топика...


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
Exception
Дата 5.4.2007, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 3
Всего: 186



Скрипт (просто подключи к страничке)

Код
      var xmlDoc;
      var xslDoc;
      var objOutput;
      function LoadXMLXSLTDoc(urlXML,urlXSL,elementID){
        xmlDoc=null;
        xslDoc=null;
        objOutput = document.getElementById(elementID);
        new net.ContentLoader(urlXML,onXMLLoad);
        new net.ContentLoader(urlXSL,onXSLLoad);
      }
      function onXMLLoad(){
        xmlDoc=this.req.responseXML;
        doXSLT();
      }
      function onXSLLoad(){
        xslDoc=this.req.responseXML;
        doXSLT();
      }

      function doXSLT(){
        if (xmlDoc==null || xslDoc==null){ return false; }
        if (window.ActiveXObject){
          objOutput.innerHTML=xmlDoc.transformNode(xslDoc);
        }
        else{
          var xsltProcessor = new XSLTProcessor();
          xsltProcessor.importStylesheet(xslDoc);
          var fragment =xsltProcessor.
            transformToFragment(
              xmlDoc,document);
          objOutput.innerHTML = "";
          objOutput.appendChild(fragment);
        }
      }


/* namespacing object */
var net=new Object();

net.READY_STATE_UNINITIALIZED=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADED=2;
net.READY_STATE_INTERACTIVE=3;
net.READY_STATE_COMPLETE=4;


/*--- content loader object for cross-browser requests ---*/
net.ContentLoader=function(url,onload,onerror,method,params,contentType){
  this.req=null;
  this.onload=onload;
  this.onerror=(onerror) ? onerror : this.defaultError;
  this.loadXMLDoc(url,method,params,contentType);
}

net.ContentLoader.prototype.loadXMLDoc=function(url,method,params,contentType){
  if (!method){
    method="GET";
  }
  if (!contentType && method=="POST"){
    contentType='application/x-www-form-urlencoded';
  }
  if (window.XMLHttpRequest){
    this.req=new XMLHttpRequest();
  } else if (window.ActiveXObject){
    this.req=new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (this.req){
    try{
      var loader=this;
      this.req.onreadystatechange=function(){
        net.ContentLoader.onReadyState.call(loader);
      }
      this.req.open(method,url,true);
      if (contentType){
        this.req.setRequestHeader('Content-Type', contentType);
      }
      this.req.send(params);
    }catch (err){
      this.onerror.call(this);
    }
  }
}


net.ContentLoader.onReadyState=function(){
  var req=this.req;
  var ready=req.readyState;
  if (ready==net.READY_STATE_COMPLETE){
    var httpStatus=req.status;
    if (httpStatus==200 || httpStatus==0){
      this.onload.call(this);
    }else{
      this.onerror.call(this);
    }
  }
}

net.ContentLoader.prototype.defaultError=function(){
  alert("error fetching data!"
    +"\n\nreadyState:"+this.req.readyState
    +"\nstatus: "+this.req.status
    +"\nheaders: "+this.req.getAllResponseHeaders());
}


Енто в страничку:

Код

      window.onload = function {
        LoadXMLXSLTDoc("http://path_to_myxml.xml","http://path_to_myxsl.xsl","apl");
      }


Скажи спасибо Google Code Search smile .

Добавлено через 1 минуту и 7 секунд
Это работает в IE и FF. Оперой проверяй сам smile .
PM   Вверх
Alx
Дата 14.4.2007, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: нет
Всего: 78



Цитата(ShurikA @  5.4.2007,  13:43 Найти цитируемый пост)
при этом он мне просто выдаёт XML:

у меня только в FF.. IE похоже не понимает, что это XML.. выводит
Цитата
index.php Main login.php?act=logout Logout 


Цитата(Exception @  5.4.2007,  12:49 Найти цитируемый пост)
Я что не пойму -- почему тебе не хочется сделать енто по-человечески:

а что плохого в использовании xml внутри html? Это же очень удобно.. например для написания компонентов..

Добавлено через 7 минут и 38 секунд
я говорю сейчас о том, чтобы писать прямо свои теги внутри html-кода, а не подгружать xml-данные через XMLHttpRequest

Это сообщение отредактировал(а) Alx - 14.4.2007, 19:10

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  xml_into_html.png 10,27 Kb


--------------------
PM MAIL WWW ICQ   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.1428 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.