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

Поиск:

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


Зануда
***


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

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



Мозжно ли вставлять 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>



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


Новичок



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

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



Только для 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-файл
PM MAIL   Вверх
ShurikA
Дата 5.4.2007, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


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

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



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

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


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

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


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


Эксперт
****


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

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



Цитата(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);

PM   Вверх
ShurikA
Дата 5.4.2007, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


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

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



Exception
elkin
Спасибо.

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


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


Эксперт
****


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

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



Я что не пойму -- почему тебе не хочется сделать енто по-человечески:

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.
PM   Вверх
ShurikA
Дата 5.4.2007, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


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

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



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

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


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


Эксперт
****


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

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



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


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

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


в начале PHP-кода.
PM   Вверх
ShurikA
Дата 5.4.2007, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


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

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



Извиняюсь, я может совсем туплю, но всё таки...
Вот такой максимально простой 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>



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


Эксперт
****


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

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



А, ну да.

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


Добавлено через 48 секунд
Естественно, xsl-ка должна быть в той же директории и называться myxsl.xsl smile .
PM   Вверх
ShurikA
Дата 5.4.2007, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


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

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



Цитата(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>
--------------^



Это сообщение отредактировал(а) ShurikA - 5.4.2007, 14:10


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


Эксперт
****


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

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



Не

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


а

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


то есть слэш закрывающий надо добавлять.
PM   Вверх
ShurikA
Дата 5.4.2007, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


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

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



Exception,  спасибо.

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

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


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


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


Эксперт
****


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

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



Меняй на select.
PM   Вверх
ShurikA
Дата 5.4.2007, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


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

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



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

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

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


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
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   Вверх
Exception
Дата 14.4.2007, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(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, ничего страшного.

Это сообщение отредактировал(а) Exception - 14.4.2007, 20:28
PM   Вверх
Alx
Дата 14.4.2007, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


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

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



Цитата(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, как я понимаю?



--------------------
PM MAIL WWW ICQ   Вверх
Exception
Дата 14.4.2007, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(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, как я понимаю?


Да.
PM   Вверх
Alx
Дата 15.4.2007, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


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

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



Цитата(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...

пасиб)



--------------------
PM MAIL WWW ICQ   Вверх
Exception
Дата 17.4.2007, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(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).


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

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

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

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

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


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

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


 




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


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

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