Перейти к содержимому

Фотография
- - - - -

Xsl:sequence некорректно работает в браузерах


  • Вы не можете создать новую тему
  • Закрытая тема Тема закрыта
В теме одно сообщение

#1 Андрей Бушман

Андрей Бушман

    Прохожий

    Топикстартер
  • Участник
  • 0
    1 сообщ.

Отправлено 23 Февраль 2012 в 19:49

Доброго времени суток.


Изучаю XSLT. Написал такой xml-файл:


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="xpath2.xsl"?>
<doc>
	<items>
		<node>Den</node>
		<node>Bob</node>
		<node>Mike</node>
	</items>
</doc>


Затем написал файл xpath2.xsl:


<?xml version="1.0"?>
<xsl:stylesheet version="2.0"  
	xmlns:xs= "http://www.w3.org/2001/XMLSchema"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output encoding="UTF-8" method="text"/>  
	<xsl:template match="/">
		<xsl:variable name="myVar" as="xs:string*">  
			<xsl:sequence select="doc/items/node"/>	  
			<xsl:sequence select="('1', '2', '3')"/>
		</xsl:variable>
		<xsl:text>Node values:&#xA;</xsl:text>	  
		<xsl:value-of select="$myVar" separator="&#xA;"/>
	</xsl:template>
</xsl:stylesheet>


Если в браузере (любой, кроме Google Chrome) открыть первый показанный мною xml-файл, то текст "Node values:" я вижу, но перечисление отсутствует. Почему?

В Google Chrome почему-то xsl вообще не работает... В нём не реализована поддержка XSL?


Если в командной строке выполнить это (воспользовавшись Saxonica):


"C:\Program Files\Saxonica\SaxonHE9.4N\bin\Transform.exe" -s:"C:\Users\user\Documents\Learning\xslt\xpath\test.xml" -xsl:"C:\Users\user\Documents\Learning\xslt\xpath\xpath2.xsl" -o:"C:\Users\user\Documents\Learning\xslt\xpath\result.txt"

То в результате получаю текстовый файл с нужным содержимым:

Node values:

Den
Bob
Mike
1
2
3

Почему сторонняя софтина даёт верный результат, а браузеры - нет?


Сообщение отредактировал Андрей Бушман: 23 Февраль 2012 в 19:51

  • 0

Спонсор

#2 Medwoodu

Medwoodu

    Злобный модер

  • суперМодератор
  • 357
    1 418 сообщ.

Отправлено 23 Февраль 2012 в 21:26

Доброго времени суток.


Изучаю XSLT. Написал такой xml-файл:


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="xpath2.xsl"?>
<doc>
	<items>
		<node>Den</node>
		<node>Bob</node>
		<node>Mike</node>
	</items>
</doc>


Затем написал файл xpath2.xsl:


<?xml version="1.0"?>
<xsl:stylesheet version="2.0"  
	xmlns:xs= "http://www.w3.org/2001/XMLSchema"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output encoding="UTF-8" method="text"/>  
	<xsl:template match="/">
		<xsl:variable name="myVar" as="xs:string*">  
			<xsl:sequence select="doc/items/node"/>	  
			<xsl:sequence select="('1', '2', '3')"/>
		</xsl:variable>
		<xsl:text>Node values:&#xA;</xsl:text>	  
		<xsl:value-of select="$myVar" separator="&#xA;"/>
	</xsl:template>
</xsl:stylesheet>


Если в браузере (любой, кроме Google Chrome) открыть первый показанный мною xml-файл, то текст "Node values:" я вижу, но перечисление отсутствует. Почему?

В Google Chrome почему-то xsl вообще не работает... В нём не реализована поддержка XSL?


Если в командной строке выполнить это (воспользовавшись Saxonica):


"C:\Program Files\Saxonica\SaxonHE9.4N\bin\Transform.exe" -s:"C:\Users\user\Documents\Learning\xslt\xpath\test.xml" -xsl:"C:\Users\user\Documents\Learning\xslt\xpath\xpath2.xsl" -o:"C:\Users\user\Documents\Learning\xslt\xpath\result.txt"

То в результате получаю текстовый файл с нужным содержимым:

Node values:

Den
Bob
Mike
1
2
3

Почему сторонняя софтина даёт верный результат, а браузеры - нет?

хреново поддерживают xslt
  • 0



Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение
Статистика

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей