Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Перевод XML в HTML / 6 сообщений из 6, страница 1 из 1
17.02.2013, 22:43
    #38154936
Relrin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевод XML в HTML
Пытаюсь преобразовать XML в HTML. Но не получается корректно сформировать html страничку: я хочу отсортировать данные в xml по цене (убыванию), а затем все отобразить в html. Подскажите, пожалуйста, в чем моя ошибка.

Шаблон XSD:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
	<xsl:template match="/">
		<html>
	       <head>
	           <title>"Лабораторная №5, вариант 4"</title>
	       </head>
	
	    <body>
	        <xsl:for-each select="//medicament">
               <xsl:sort select="/price">
			       <p>
			           Содержимое узла <b>Medicine</b> корневого элемента: 
			           <br>Имя:<xsl:value-of select="//name"/></br>
			           Цена:<xsl:value-of select="//price"/>
			           <br>Дозировка:<xsl:value-of select="//dosage"/></br>
			           Цвет:<xsl:value-of select="//visual/color"/>
			           <br>Консистенция:<xsl:value-of select="//visual/consistency"/></br>
			           Рекомендации:<xsl:value-of select="//visual/indications"/>
			           <br></br>
			       </p>
	            </xsl:sort>
             </xsl:for-each>
	    </body>
	    </html>
	</xsl:template>
</xsl:stylesheet>



Сам XML имеет такой вид:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Medicine.xml [
<!ELEMENT medicine (medicament*)>
<!ELEMENT medicament (name, price, dosage, visual)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ATTLIST price data_long CDATA #FIXED "LONG">
<!ELEMENT dosage (#PCDATA)>
<!ELEMENT visual (color, consistency, indications?)>
<!ELEMENT color (#PCDATA)>
<!ELEMENT consistency (#PCDATA)>
<!ELEMENT indications (#PCDATA)>
]>

<medicine>
    <medicament>
        <name>Anaviks</name>
        <price>256</price>
        <dosage>15mg</dosage>
        <visual>
            <color>brown</color>
            <consistency>water</consistency>
            <indications>without recipe</indications>
        </visual> 
    </medicament>
    
    <medicament>
        <name>Ambrosan</name>
        <price>130</price>
        <dosage>5mg</dosage>
        <visual>
            <color>white</color>
            <consistency>solid</consistency>
            <indications>without recipe</indications>
        </visual> 
    </medicament>
    
    <medicament>
        <name>Magnefar</name>
        <price>200</price>
        <dosage>10mg</dosage>
        <visual>
            <color>red</color>
            <consistency>powdered</consistency>
            <indications>by recipe</indications>
        </visual> 
    </medicament>
    
    <medicament>
        <name>Ferro-III</name>
        <price>90</price>
        <dosage>80mg</dosage>
        <visual>
            <color>green</color>
            <consistency>solid</consistency>
            <indications>without recipe</indications>
        </visual> 
    </medicament>
    
    <medicament>
        <name>Halset</name>
        <price>250</price>
        <dosage>15mg</dosage>
        <visual>
            <color>yellow</color>
            <consistency>water</consistency>
            <indications>without recipe</indications>
        </visual> 
    </medicament>
    
</medicine>
...
Рейтинг: 0 / 0
17.02.2013, 23:49
    #38154993
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевод XML в HTML
RelrinПодскажите, пожалуйста, в чем моя ошибка.В потере контекста
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<xsl:for-each select="medicine/medicament">
             <xsl:sort select="price"/>
	       <p>
	           Содержимое узла <b>Medicine</b> корневого элемента: 
	           <br>Имя:<xsl:value-of select="name"/></br>
	           Цена:<xsl:value-of select="price"/>
	           <br>Дозировка:<xsl:value-of select="dosage"/></br>
	           Цвет:<xsl:value-of select="visual/color"/>
	           <br>Консистенция:<xsl:value-of select="visual/consistency"/></br>
	           Рекомендации:<xsl:value-of select="visual/indications"/>
	           <br></br>
	       </p>
</xsl:for-each>
...
Рейтинг: 0 / 0
17.02.2013, 23:52
    #38154996
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевод XML в HTML
Relrinотсортировать данные в xml по цене (убыванию)
Код: xml
1.
<xsl:sort select="price" data-type="number" order="descending"/>
...
Рейтинг: 0 / 0
17.02.2013, 23:56
    #38155004
Relrin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевод XML в HTML
Спасибо за подсказку. Правда единственное, чего пока не понятно: сортировки применяются также к некому пространсву(т.е. с указанием не только полю)?
...
Рейтинг: 0 / 0
17.02.2013, 23:59
    #38155007
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевод XML в HTML
RelrinПравда единственное, чего пока не понятно: сортировки применяются также к некому пространсву(т.е. с указанием не только полю)?Ничего не понял
...
Рейтинг: 0 / 0
18.02.2013, 00:00
    #38155010
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевод XML в HTML
RelrinПравда единственное, чего пока не понятно: сортировки применяются также к некому пространсву(т.е. с указанием не только полю)?В атрибуте select можно указать любое выражение, если Вы об этом
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Перевод XML в HTML / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]