![]() |
XML-форумы |
Обсуждение XML и связанных с ним технологий |
Автор | Сообщение | |
---|---|---|
pitek Гость |
[13540]
Чт Фев 05, 2009 11:32
Добрый день, такой вопрос.
Пространство имен Выдается xml, стандартная насколько я понял, в заголовке следующее: <?xml version="1.0" encoding="windows-1251"?> <rss version="2.0" xmlns="http://backend.userland. com/rss2" xmlns:yandex="http://news.yandex. ru"> xsl шаблон для нее делаю, с таким заголовокм: (перед зоной пробелы специально) <?xml version="1.0" encoding="windows-1251"?> <xsl:stylesheet version="2.0" xmlns="http://backend.userland. com/rss2" xmlns:xsl="http://www.w3. org/1999/XSL/Transform" xmlns:fo="http://www.w3. org/1999/XSL/Format" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:my="http://tempurl. org" xmlns:yandex="http://news.yandex. ru"> Проблема в чем: Если из xml убрать строчку xmlns="http://backend.userland. com/rss2", то все отображается на ура, так, как я говорю: <xsl:template match="channel"> <xsl:for-each select="item"> <xsl:value-of select="title" />\ </xsl:for-each> </xsl:template> Т.е. только заголовки Если же оставить - отображает всю xml. Помогите вопрос решить, т.к. xml не моя и повлиять на нее не могу |
|
olpa Любитель Зарегистрирован: 23.04.2002 Сообщения: 981 Откуда: Санкт-Петербург ![]() |
[13542]
Пт Фев 06, 2009 08:25
Попробуй так:
<?xml version="1.0" encoding="windows-1251"?> <xsl:stylesheet version="2.0" xmlns:rss="http://backend.userland. com/rss2" xmlns:xsl="http://www.w3. org/1999/XSL/Transform" xmlns:fo="http://www.w3. org/1999/XSL/Format" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:my="http://tempurl. org" xmlns:yandex="http://news.yandex. ru"> <xsl:template match="rss:channel"> <xsl:for-each select="item"> <xsl:value-of select="title" /> </xsl:for-each> </xsl:template> |
|
pitek Гость |
[13544]
Пт Фев 06, 2009 08:32
Не, ничего не выводит.
Template match я так понимаю не схватывает, сейчас сравнил match="rss/channel" match="channel" - результат один - выводит все |
|
olpa Любитель Зарегистрирован: 23.04.2002 Сообщения: 981 Откуда: Санкт-Петербург ![]() |
[13550]
Пн Фев 09, 2009 10:04
Нужны:
* Пример XML * Минимальный пример XSLT, который не работает как надо * Пояснение, что значит "как надо" |
|
pitek Гость |
[13552]
Пн Фев 09, 2009 12:21
Проблема решилась первым методом, только сделал вот так:
<xsl:template match="rss:channel"> <xsl:for-each select="rss:item"> <xsl:value-of select="rss:title" /> </xsl:for-each> </xsl:template> |
|
Ex_Soft Гость |
[13615]
Чт Мар 12, 2009 14:23
Но тогда приходиться каждый раз дописывать суррогатный default'овый namespace rss. А как сделать, чтобы не нужно было каждый раз его прописывать? |
|
Vasilisk Наставник ![]() Зарегистрирован: 17.05.2006 Сообщения: 370 Откуда: Украина, Харьков |
[13616]
Чт Мар 12, 2009 23:40
Никак. Да и, имхо, нафиг нужно _________________ С уважением Vasilisk Уважайте читающих, используйте тэги [code ][/code] |
|
Ex_Soft Гость |
[13617]
Пт Мар 13, 2009 00:05
Однозначно?..
Гм... Мо Вам с высоты Вашего опыта и виднее... |
|
Vasilisk Наставник ![]() Зарегистрирован: 17.05.2006 Сообщения: 370 Откуда: Украина, Харьков |
[13623]
Сб Мар 14, 2009 02:08
Почему же. Есть какое-то древнее пространство имен для XSL - http://www.w3.org/TR/WD-xsl, вот оно, как-будто бы позволяло обращаться к XML без указания пространства имен. Но, повторяю, пространство имен древнее и к использованию не рекомендуется
Именно. Я, считаю, что в XML немного разбираюсь _________________ С уважением Vasilisk Уважайте читающих, используйте тэги [code ][/code] |
|
Ex_Soft Новичок ![]() Зарегистрирован: 13.03.2009 Сообщения: 12 |
[13624]
Сб Мар 14, 2009 08:44
Насколько я понял - это заточка под M$ IE only. А "...такой хоккей нам не нужен..." _________________ "Helo, word!" - 17 errors 56 warnings |
Страница 1 из 1 |