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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [XSLT] Получить содержимое узла по его атрибуту 
V
    Опции темы
neokortex
Дата 31.3.2011, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Привет. Есть такой XML:
Код

<book  author="pushkin">Руслан и Людмила</book>
<book  author="tolstoi">Война и мир</book>
<book  author="gogol">Вий</book>


Надо с помощью XSLT получить название произведения по его автору. Как это сделать?
PM MAIL   Вверх
diadiavova
Дата 31.3.2011, 20:59 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



book[@author='pushkin']


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
neokortex
Дата 31.3.2011, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



я в XSLT новичек, поэтому что-то не так делаю
вот так у меня не получается:
Код

<xsl:value-of select="book[@author='pushkin']" />

ничего не выдает
PM MAIL   Вверх
diadiavova
Дата 31.3.2011, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Цитата(neokortex @  31.3.2011,  22:35 Найти цитируемый пост)
ничего не выдает 

Вообще-то должен. Давай весь код в студию.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
neokortex
Дата 31.3.2011, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



понял ошибку. у меня было вот так:
Код

<xsl:template match="/">

и ничего не работало.

я сделал так
Код

<xsl:template match="*">

и все нормально. это из-за чего?
PM MAIL   Вверх
diadiavova
Дата 31.3.2011, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Цитата(neokortex @  31.3.2011,  22:49 Найти цитируемый пост)
и все нормально. это из-за чего? 

Я не видел всего документа, так что ничего сказать не могу.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
neokortex
Дата 31.3.2011, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



было так.
XML:
Код

<?xml version="1.0" encoding="UTF-8"?>
<elements>
    <title>Книги</title>
    <book author="pushkin">Руслан и Людмила</book>
    <book author="tolstoi">Война и мир</book>
    <book author="gogol">Вий</book>
</elements>

XSLT:
Код

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
    <xsl:template match="/">
        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
                <title>
                    <xsl:value-of select="//title"/>
                </title>
                <script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js">
                </script>
                <script type="text/javascript" src="/js/1.js">
                </script>
            </head>
            <body>
                <xsl:value-of select="book[@author='pushkin']" />
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

PM MAIL   Вверх
diadiavova
Дата 31.3.2011, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



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

2. Лучше использовать более надежное выражение  //book[@author='pushkin']. Оно будет искать такие узлы по всему документу, а когда ты его ищешь из корня документа, то фактически процессор просматривает только корневой узел, поскольку он является непосредственным потомком узла документа.





--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
neokortex
Дата 31.3.2011, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



спасибо большое
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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