-12 / 0 / 4
Регистрация: 04.10.2014
Сообщений: 272
1

Запрет XSL на считывание значений из дочерних элементов

12.10.2016, 23:11. Показов 645. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Файл 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
<?xml version="1.0" encoding="WINDOWS-1251"?>
<?xml-stylesheet type="text/xsl" href="lb.xsl"?>
<students>
 
 <student>
    <name>Максим</name>
    <surname>Шаринский</surname>
    <fathername>Александрович</fathername>
    <year number ="1996">20</year>
    <university location ="Минск">БГУИР
        <department> ИЭ </department>
        <group>472303</group>
        <raiting>4</raiting>
    </university>
    <hostel>Общежитие 4 БГУИР</hostel>
 </student>
 
 <student>
    <name>Антон</name>
    <surname>Кулик</surname>
    <fathername>Вальрьевич</fathername>
    <year number ="1996">19</year>
    <university location ="Минск">БГУИР
        <department> ИЭ </department>
        <group>472303</group>
        <raiting>5</raiting>
    </university>
    <hostel>Не имеет</hostel>
 </student>
 
 <student>
    <name>Владимир</name>
    <surname>Шишкин</surname>
    <fathername>Андреевич</fathername>
    <year number ="1998">18</year>
    <university location ="Минск">БНТУ
        <department> ЭС </department>
        <group>547201</group>
        <raiting>1</raiting>
    </university>
    <hostel>Общежитие 1 БНТУ</hostel>
 </student>
 
</students>
Файл XSL:

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
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns="http://www.w3.org/1999/xhtml" >
 
    <xsl:template match="/">
        <table border = "2">
                <tr bgcolor = "#D7FFE4">
                        <td align = "center"><strong>ИМЯ</strong></td>
                        <td align = "center"><strong>ФАМИЛИЯ</strong></td>
                        <td align = "center"><strong>ОТЧЕСТВО</strong></td>
                        <td align= "center"><strong>ПОЛНЫХ ЛЕТ</strong></td>
                        <td align= "center"><strong>ГОД РОЖДЕНИЯ</strong></td>
                        <td align="center"><strong>УНИВЕРСИТЕТ</strong></td>
                        <td align= "center"><strong>МЕСТОПОЛОЖЕНИЕ</strong></td>
                        <td align="center"><strong>ФАКУЛЬТЕТ</strong></td>
                        <td align="center"><strong>ГРУППА</strong></td>
                        <td align="center"><strong>РЕЙТИНГ</strong></td>
                        <td align="center"><strong>ОЩЕЖИТИЕ</strong></td>
                </tr>
        <xsl:for-each select="students/student">
            <tr bgcolor="#99FF50">
                <td align = "center"><xsl:value-of select="name"/></td>
                <td align = "center"><xsl:value-of select="surname"/></td>
                <td align = "center"><xsl:value-of select="fathername"/></td>
 
                <td align = "center">
                    <xsl:value-of select="year"/>
                </td>
 
                <td align="center">
                    <xsl:value-of select = "//year/@number"/>
                </td>
 
                <td align = "center"><xsl:value-of select="university"/></td>
                <td align="center">
                    <xsl:value-of select = "//university/@location"/>
                </td>
 
                <td align = "center"><xsl:value-of select="university/department"/></td>
                <td align = "center"><xsl:value-of select="university/group"/></td>
                <td align = "center"><xsl:value-of select="university/raiting"/></td>
 
 
                <td align = "center"><xsl:value-of select="hostel"/></td>
            </tr>
        </xsl:for-each>
        </table>
    </xsl:template>
 
</xsl:stylesheet>
Вывод:
Запрет XSL на считывание значений из дочерних элементов


Проблема 1: В университет должно считываться только его название, а не все содержимое из дочерних элементов

Проблема 2: При считывание атрибута год, у 3 элемента в выводе отображается 1996, хотя в XML 1998
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2016, 23:11
Ответы с готовыми решениями:

Запрет на появление дочерних окон при открытии приложения
При открытии приложения все дочернии формы оказываются в положении видимости, не зависимо от их...

Использование в xsl значений из xsd при обработке xml
Всем привет! :) Внимание знатоки... прошу помощи в решении проблемы. С интеллектуальными трудами...

SQL->XML->XSL - как построить такую XSL для таблицы?
вот выгреб из БД я нечто такое: +-------+-------------+------------+ | title | buildnumber |...

Сумма значений дочерних строк
Доброго дня! Решаю тренировочную задачу на иерархические структуры, и застрял на вроде бы...

1
6217 / 2465 / 725
Регистрация: 11.04.2015
Сообщений: 3,985
Записей в блоге: 43
13.10.2016, 11:13 2
Цитата Сообщение от artart96 Посмотреть сообщение
В университет должно считываться только его название, а не все содержимое из дочерних элементов
Вместо
Цитата Сообщение от artart96 Посмотреть сообщение
<xsl:value-of select="university"/>
Напиши
XML
1
<xsl:value-of select="university/text()[1]"/>
Цитата Сообщение от artart96 Посмотреть сообщение
При считывание атрибута год, у 3 элемента в выводе отображается 1996, хотя в XML 1998
У тебя везде год берется из первого элемента из-за того, что год ты выводишь так
Цитата Сообщение от artart96 Посмотреть сообщение
<xsl:value-of select="//year/@number"/>
Убери двойной слеш вначале выражения
XML
1
<xsl:value-of select="year/@number"/>
То же самое рекомендую сделать и в других подобных случаях, поскольку это даст тот же эффект. Например здесь
Цитата Сообщение от artart96 Посмотреть сообщение
<xsl:value-of select="//university/@location"/>
1
13.10.2016, 11:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2016, 11:13
Помогаю со студенческими работами здесь

Получение значений дочерних тегов XML
Использую я модуль XML::DOM. Файл XML выгладит след. образом: &lt;?xml version='1.0'...

Есть ли способ послать переменную в xsl-документ с помощью ASP, чтобы xsl выбрал и показал то что надо из xml?
Есть ли способ послать переменную в xsl-документ с помощью ASP, чтобы xsl выбрал и показал то что...

Прозрачность дочерних элементов
Ув форумчане помогите разобратся как сделать что бы дочерний элемент не был прозрачным &lt;div...

Добавление дочерних элементов
Добрый день, господа! В JS необходимо добавить внутрь тега select ряд тегов option с разными...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru