Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
NickTroshkov
Зарегистрирован: 10.01.2002 Сообщения: 27 Откуда: Геленджик
|
Добавлено: Чт Янв 10 2002 22:06 Заголовок сообщения: XML+XSL Как работать со ссылками на элементы? |
|
|
--- в XML --- Очень частая задача! создаю два списка, например (Вместо квадратных, подразумеваются угловые скобки) [List1] [Sheep ID="1"][title]Титаник[/title][/Sheep] [Sheep ID="2"][title]Комсомолец[/title] [/List1] [List2] [Raice ID="1"][Sheep ID="1"/][/Raice] [Raice ID="2"][Sheep ID="2"/][/Raice] или ссылка(указатель) оформляется иначе? [/List2]
В XSL пытаюсь выудить Title-корабля для каждого рейса, но безуспешно. [xsl:for-each select="doc/Raice"] [xsl:value-of select="Sheep/title"/] [/xsl:for-each]
А так работает, но абсолютно не нужно! Теряется весь смысл использования ссылки. [xsl:value-of select="//Sheep[@ID="2"]/title"/] Мне кажется я просто не знаю какой то мелочи.
Как правильно писать такие сценарии? Можно ли обойтись без JavaScript? Везде ли это будет работать? |
|
Вернуться к началу |
|
|
Парфенов Сергей Гость
|
Добавлено: Пт Янв 18 2002 13:36 Заголовок сообщения: Re: XML+XSL Как работать со ссылками на элементы? |
|
|
а если вот так
[xsl:for-each select="List2/Raice"] [xsl:variable name="ID"][xsl:value-of select="@ID"/] [xsl:value-of select="//List1/Sheep[@ID=$ID]/title"/] [/xsl:for-each] |
|
Вернуться к началу |
|
|
NickTroshkov
Зарегистрирован: 10.01.2002 Сообщения: 27 Откуда: Геленджик
|
Добавлено: Сб Янв 19 2002 14:42 Заголовок сообщения: OK! А теперь тоже самое с отдельными XML? |
|
|
Да. я уже так и сделал, только для этого пришлось ставить XML3 и использовать XSLT. И переменную я по другому обозвал. Все работает. Спасибо за участие. Вот только теперь думаю, как тоже самое сделать если списки в разных файлах (списки обновляются независимо). Как подключить внешний XML и обратиться к его элементам? Желательно, чтобы все дерево файлов определялось в XML, а XSL работал через корневой XML, а не ссылался по отдельности на каждый файл. Что-то типа иерархии СИ-Include или Delphy-USE. |
|
Вернуться к началу |
|
|
Парфенов Сергей Гость
|
Добавлено: Пн Янв 21 2002 08:59 Заголовок сообщения: Re: OK! А теперь тоже самое с отдельными XML? |
|
|
используйте такую конструкцию:
[xsl:param name="filename-raice" select="'raice.xml'"/] [xsl:param name="filename-ships" select="'ships.xml'"/]
[xsl:for-each select="document($filename-raice)//List2/Raice"/] ... [xsl:value-of select="document($filename-ships)//List1/Sheep[@ID=$ID]/title"/] |
|
Вернуться к началу |
|
|
NickTroshkov
Зарегистрирован: 10.01.2002 Сообщения: 27 Откуда: Геленджик
|
Добавлено: Пн Янв 21 2002 15:50 Заголовок сообщения: Спасибочки! И еще несколько слов по теме. |
|
|
Большое спасибо Сергей, я сейчас так и сделаю! Но было бы намного красивее определять иерархию XML-модулей в самих XML, а в XSLT обращаться к элементам без указания файла, как если бы они находились в корневом xml, а парсер пусть сам ищет их в подключаемых молдулях. Жаль, что такая возможность в XML/XSLT не поддерживается. Это ведь наверное несложно реализовать. |
|
Вернуться к началу |
|
|
|