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


Автор: ShurikA 4.4.2007, 23:09
Мозжно ли вставлять XML+XSL внутри HTML кода, на пример вот таким образом:
Код

<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 class="apl">
                 <?xml version='1.0' encoding='UTF-8'?>
    <!-- List of Links for admin panel -->
    <?xml-stylesheet type='text/xsl' href='http://localhost/ImageryFair/admin/xml_xsl/admin_panel_menu.xsl'?>
    <APLinks>
                    
    <link>
                         <addr>index.php</addr>
            <name>Main</name>
    </link>
                        
    <link>
            <addr>login.php?act=logout</addr>
            <name>Logout</name>
    </link>
    </APLinks>
                </div>
</body>
</html>


если да, то как это правильно сделать?
Приведённый код как будто просто игнорирует XSL фаил. (при этом путь к нему правильный).

'http://localhost/ImageryFair/admin/xml_xsl/admin_panel_menu.xsl'
Код

<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="yes"/>
    <xsl:template match="APLinks">
        <table class="apl">
            <xsl:for-each select="link">
                <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>

Автор: elkin 5.4.2007, 11:57
Только для IE:
Код

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
</head>
<body>
  <xml id="apXml">
        <APLinks>
            <link>
                <addr>index.php</addr>
                <name>Main</name>
            </link>
            <link>
                <addr>login.php?act=logout</addr>
                <name>Logout</name>
            </link>
        </APLinks>
    </xml>
    <xml id="apStyle" src="admin_panel_menu.xsl"></xml>
    
    <script for="window" event="onload">
        xslArea.innerHTML = apXml.transformNode(apStyle.XMLDocument);
    </script>
<div id="xslArea"></div>
</body>
</html>

Xml тоже можно в отельный файл вынести и подключить его, как и xsl-файл

Автор: ShurikA 5.4.2007, 12:20
Цитата(elkin @  5.4.2007,  10:57 Найти цитируемый пост)
Xml тоже можно в отельный файл вынести и подключить его, как и xsl-файл 

дело в том что XML мне нузчно создавать "on the fly". конечно можно через фаил, но зачем...


Цитата(elkin @  5.4.2007,  10:57 Найти цитируемый пост)
Только для IE

где можно найти как это делать для других браузеров?

Автор: Exception 5.4.2007, 12:30
Цитата(ShurikA @  5.4.2007,  13:20 Найти цитируемый пост)
где можно найти как это делать для других браузеров? 


На место

Код
        xslArea.innerHTML = apXml.transformNode(apStyle.XMLDocument);


для FF (насчёт Оперы не уверен):

Код
   var xsltProc  = new XSLTProcessor();
   xsltProc.importStylesheet(xsltDoc);
   var xsl = xsltProc.transformToFragment(xml);
   xslArea.appendChild (xsl);

Автор: ShurikA 5.4.2007, 12:38
Exception
elkin
Спасибо.

Короче, то что я понял, ето то что такие вещи можно делать толька скриптом???

Автор: Exception 5.4.2007, 12:49
Я что не пойму -- почему тебе не хочется сделать енто по-человечески:

xml

Код
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="myxsl.xsl"?>
<APLinks>   
    <link>
            <addr>index.php</addr>
            <name>Main</name>
    </link>            
    <link>
            <addr>login.php?act=logout</addr>
            <name>Logout</name>
    </link>
    </APLinks>



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="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <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">
                    <xsl:apply-templates match="APLinks" />
                </div>
            </body>
        </html>
    </xsl:template>
    <xsl:template match="APLinks">
        <table class="apl">
            <xsl:for-each select="link">
                <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 и присобачиваешь к нему xsl.

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

потому что работаю через PHP.
как я понал, что бы XML код прочитался без проблемм, это должен быть фаил .xml а не .php.
или я опять ошибаюсь?

Автор: Exception 5.4.2007, 13:29
Цитата(ShurikA @  5.4.2007,  14:25 Найти цитируемый пост)
потому что работаю через PHP.
как я понал, что бы XML код прочитался без проблемм, это должен быть фаил .xml а не .php.
или я опять ошибаюсь? 


Ошибаешься. Достаточно прописать

Код
header('Content-type: application/xml');


в начале PHP-кода.

Автор: ShurikA 5.4.2007, 13:43
Извиняюсь, я может совсем туплю, но всё таки...
Вот такой максимально простой PHP фаил:
Код

<?php
header('Content-type: application/xml');
$out = "<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href='myxsl.xsl'?>
<APLinks>   
    <link>
            <addr>index.php</addr>
            <name>Main</name>
    </link>            
    <link>
            <addr>login.php?act=logout</addr>
            <name>Logout</name>
    </link>
</APLinks>";

echo $out;
?>


при этом он мне просто выдаёт XML:
Код

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

Автор: Exception 5.4.2007, 14:00
А, ну да.

Код
 <?xml-stylesheet href='myxsl.xsl' type='text/xsl'?>


Добавлено через 48 секунд
Естественно, xsl-ка должна быть в той же директории и называться myxsl.xsl smile .

Автор: ShurikA 5.4.2007, 14:08
Цитата(Exception @  5.4.2007,  13:00 Найти цитируемый пост)
Естественно, xsl-ка должна быть в той же директории и называться myxsl.xsl 

Ясный пень.


Цитата(Exception @  5.4.2007,  13:00 Найти цитируемый пост)
<?xml-stylesheet href='myxsl.xsl' type='text/xsl'?>

Это я уже пробовал, не помогло...

Добавлено через 2 минуты и 27 секунд
теперь появилась следующая хрень:
Код

End tag 'head' does not match the start tag 'link'. Error processing resource 'http://localhost/try/myxsl.xsl'. Line 11, P...

            </head>
--------------^


Автор: Exception 5.4.2007, 14:19
Не

Код
    <link rel="stylesheet" href="http://localhost/ImageryFair/admin/css/admin.css">


а

Код
    <link rel="stylesheet" href="http://localhost/ImageryFair/admin/css/admin.css" />


то есть слэш закрывающий надо добавлять.

Автор: ShurikA 5.4.2007, 14:23
Exception,  спасибо.

следующее:
Код

Attribute 'match' is invalid on 'xsl:apply-templates'. 


надеюсь последнее... smile

Автор: Exception 5.4.2007, 14:32
Меняй на select.

Автор: ShurikA 5.4.2007, 14:35
Цитата(Exception @  5.4.2007,  13:32 Найти цитируемый пост)
Меняй на select. 

Только что сам допёр smile
Спасибо, огромное!!

Добавлено через 1 минуту и 42 секунды
 smile но важно:
есть ли какая то проблемма с compatibility XML-a с разными браузерами?

Автор: Exception 5.4.2007, 14:49
Вроде как в опере меньше 9.0 xsl не работает. Впрочем, никто не мешает делать преобразование на сервере smile . Правда, это уже в форум по PHP.

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

и только там?

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

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

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

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

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

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

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

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

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

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

Автор: Exception 5.4.2007, 15:17
Цитата(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

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

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

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

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


Добавлено через 9 минут и 10 секунд
Ты имеешь в виду - динамически загрузить xml и применить к нему xsl? Енто делается легко.

Автор: ShurikA 5.4.2007, 16:01
Цитата(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 (или её часть)... - возможно ли?

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


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

Добавлено через 47 секунд
Примеры -- в гугле smile .

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

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

Автор: ShurikA 5.4.2007, 17:23
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>



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

Автор: Exception 5.4.2007, 18:51
Скрипт (просто подключи к страничке)

Код
      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");
      }


Скажи спасибо http://www.google.com/codesearch?hl=en&q=+function+LoadXMLXSLTDoc+show:vx_HixxqZP8:s7f_KbxBZro:yIIozZ249M0&sa=N&cd=1&ct=rc&cs_p=http://www.manning-source.com/books/crane/ajaxinactioncode_03nov2005.zip&cs_f=ch12/original/PhoneList_bookmarkable.htm#a0 smile .

Добавлено через 1 минуту и 7 секунд
Это работает в IE и FF. Оперой проверяй сам smile .

Автор: Alx 14.4.2007, 19:03
Цитата(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

Автор: Exception 14.4.2007, 20:27
Цитата(Alx @  14.4.2007,  20:03 Найти цитируемый пост)
у меня только в FF.. IE похоже не понимает, что это XML.. выводит


У тебя XSL не подсединилась. Ты все поправки внёс, которые в этой теме перечислялись smile ?

Цитата(Exception @  5.4.2007,  15:00 Найти цитируемый пост)
 <?xml-stylesheet href='myxsl.xsl' type='text/xsl'?>



Цитата(Exception @  5.4.2007,  15:32 Найти цитируемый пост)
Меняй на select. 


Цитата(Alx @  14.4.2007,  20:03 Найти цитируемый пост)
а что плохого в использовании xml внутри html? Это же очень удобно.. например для написания компонентов..


Если не учитывать то, что твоя страница будеть невалидна и не будет читаться (по крайней мере, по-человеческому) поисковиками, текстовыми браузерами, браузерами с отключённым JavaScript, браузерами на мобильных устройствах, устаревшими браузерами и вообще браузерами, не поддерживающими динамический XSLT, ничего страшного.

Автор: Alx 14.4.2007, 21:18
Цитата(Exception @  14.4.2007,  20:27 Найти цитируемый пост)
У тебя XSL не подсединилась. Ты все поправки внёс, которые в этой теме перечислялись  ?

я вообще XSL не подсоединял... у Explorer`а же есть дефолтовый парсер, который выводит древо элементов..

Цитата(Exception @  14.4.2007,  20:27 Найти цитируемый пост)
Если не учитывать то, что твоя страница будеть невалидна и не будет читаться (по крайней мере, по-человеческому) поисковиками, текстовыми браузерами, браузерами с отключённым JavaScript, браузерами на мобильных устройствах, устаревшими браузерами и вообще браузерами, не поддерживающими динамический XSLT, ничего страшного.

а чё, прям, если я буду делать как на первой части рисунка (xml+xslt) она будет поддерживаться всеми этими браузерами?

Цитата
что твоя страница будеть невалидна

а если обыграть это как xml код + html dtd?.. ну хотя это, конечно, изврат.. и если честно.. я не очень о валидности обычно забочусь.. я сейчас имею ввиду верстку.

Добавлено через 2 минуты и 25 секунд
кроме того, если речь идет о компонентах, то они обычно всегда так и так используют JavaScript... если это web-приложение..

Добавлено через 5 минут и 5 секунд
если конечно 
Цитата(Alx @  14.4.2007,  21:18 Найти цитируемый пост)
динамический XSLT
 это JavaScript, как я понимаю?

Автор: Exception 14.4.2007, 21:34
Цитата(Alx @  14.4.2007,  22:18 Найти цитируемый пост)
у Explorer`а же есть дефолтовый парсер, который выводит древо элементов..


Ах ты про это smile ? Ну не знаю, почему он решил, что это не надо выводить как дерево.. Приведи полный код (в просмотре HTML-кода который).


Цитата(Alx @  14.4.2007,  22:18 Найти цитируемый пост)
если я буду делать как на первой части рисунка (xml+xslt) она будет поддерживаться всеми этими браузерами?


Вообще, преобразование лучше делать на сервере. Но по крайней мере если это и делать на клиенте, лучше уж делать стандартным путём. Если написать XML прямо в HTML, возможно, что некоторые браузеры попросту отобразят этот XML в странице, что нехорошо. Уж лучше просто ничего не случится, а ещё лучше выводить сообщение о том, что браузер не поддерживается (если это конечно не массовый сайт, а админ-панель, как в данном примере smile ).


Цитата(Alx @  14.4.2007,  22:18 Найти цитируемый пост)
а если обыграть это как xml код + html dtd?.. ну хотя это, конечно, изврат.. 


Не уверен, что браузеры поймут твой ход мыслей.


Цитата(Alx @  14.4.2007,  22:18 Найти цитируемый пост)
я не очень о валидности обычно забочусь


Почему? Из лени или у тебя есть доводы против валидности страниц?


Цитата(Alx @  14.4.2007,  22:18 Найти цитируемый пост)
 это JavaScript, как я понимаю?


Да.

Автор: Alx 15.4.2007, 11:12
Цитата(Alx @  14.4.2007,  21:18 Найти цитируемый пост)
 если обыграть это как xml код + html dtd?.. 

да не, я уже понял, что чушь сказал smile к вечеру запарился smile

Цитата(Exception @  14.4.2007,  21:34 Найти цитируемый пост)
Ну не знаю, почему он решил, что это не надо выводить как дерево.. 

о, а щас всё заработало smile наверное, вчера он там какую-нибудь ошибку кэшировал, а очистить кэш я не догадался smile кстати, как избвится от кэширования в xml?

Цитата(Exception @  14.4.2007,  21:34 Найти цитируемый пост)
Почему? Из лени или у тебя есть доводы против валидности страниц?

во-первых не вижу в ней смысла.. во вторых, учитывая взаимную глючность браузеров и не очень-то широкие возможности первичных технологий, очень часто приходится по-разному извращаться, чтобы сверстать то, что тебе нужно.. и, если тратить силы ещё и на валидность.. ну в общем, да, можешь назвать это ленью.. smile

Цитата(Exception @  14.4.2007,  21:34 Найти цитируемый пост)
Вообще, преобразование лучше делать на сервере.

а можешь конкретно технологию объяснить? что, куда, как и чем? в кратце.

Цитата(Exception @  14.4.2007,  21:34 Найти цитируемый пост)
Но по крайней мере если это и делать на клиенте, лучше уж делать стандартным путём.

а если просто сделать xml тоже отдельным файлом? и подгружать его и xsl через XMLHttpRequest, обрабатывать через DOM и выводить на страницу в нужное место, это будет норм?

я просто пока не очень понимаю принцип работы js+xml и php+xml...

пасиб)

Автор: Exception 17.4.2007, 07:29
Цитата(Alx @  15.4.2007,  12:12 Найти цитируемый пост)
 кстати, как избвится от кэширования в xml?


Ну я всегда ^F5 жму smile .

Цитата(Alx @  15.4.2007,  12:12 Найти цитируемый пост)
во-первых не вижу в ней смысла..


Ну я бы так не сказал. Благодаря распространению стандартов ситуация значительно улучшилась по сравнению с тем, что было во времена HTML 3.2.

Цитата(Alx @  15.4.2007,  12:12 Найти цитируемый пост)
а можешь конкретно технологию объяснить? что, куда, как и чем?


Да любой серверной технологией, будь то Java, .NET, PHP, etc. Просто преобразуешь как надо и возвращаешь клиенту.

Цитата(Alx @  15.4.2007,  12:12 Найти цитируемый пост)
а если просто сделать xml тоже отдельным файлом? 


Так и делают обычно (смотри Google Ajaxslt).


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