xmlhack.ru XML-форумы
Обсуждение XML и связанных с ним технологий

FF Opera и document("http://...");


Автор Сообщение
Exit_in_City
Новичок

Зарегистрирован: 15.08.2008
Сообщения: 8

[13690] Сб Мар 28, 2009 17:05
FF Opera и document("http://...");
Всем привет!
Из названия темы суть проблемы уже ясна. Функция document() при загрузке внешних файлов в FF и Opera не работает. Ищу решение уже пару дней, пока безуспешно. Решил написать на XMLHACK, т.к. знаю что уверень здешних гуру очень высок, надеюсь на Вашу помощь.
Пример, конечно, идиотский, но это первое, что попалось под руку :

XML

Код:


<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="rss.xsl" type="text/xsl"?>
<RSSSites>
  <RSSSite name="Wetter Center" link="http://blogs.msdn.com/rustudents/rss.xml"/>
</RSSSites>



XSL

Код:


<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
version="1.0">

  <xsl:output method="html"/>

  <xsl:template match="RSSSites">
    <html>
      <head>
        <title>NEWS</title>
      </head>
      <body>
        <xsl:apply-templates/>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="RSSSite">
    <table style="border:solid;">
      <xsl:apply-templates select="document(@link)"/>
    </table>
  </xsl:template>

  <xsl:template match="*[local-name()='channel']">
    <tr>
      <th>
        <xsl:element name="a">
          <xsl:attribute name="href">
            <xsl:value-of select="*[local-name()='link']"/>
          </xsl:attribute>
          <xsl:value-of select="*[local-name()='title']"/>
        </xsl:element>
      </th>
    </tr>
    <xsl:apply-templates select="*[local-name()='item']"/>
  </xsl:template>

  <xsl:template match="*[local-name()='item']">
    <tr>
      <td>
        <xsl:element name="a">
          <xsl:attribute name="href">
            <xsl:value-of select="*[local-name()='link']"/>
          </xsl:attribute>
          <xsl:value-of select="*[local-name()='title']"/>
        </xsl:element>
        <br/>
        <xsl:value-of select="*[local-name()='description']"/>
      </td>
    </tr>
  </xsl:template>

</xsl:stylesheet>



В IE и Chrome все работает, в FF и Opera пустая страница.
Если же этот rss.xml разместить у себя локально, и ссылаться на него без HTTP, то работает во всех браузеах.
Vasilisk
Наставник

Зарегистрирован: 17.05.2006
Сообщения: 370
Откуда: Украина, Харьков
[13691] Сб Мар 28, 2009 23:30

Это? http://xmlhack.ru/forum/xml/viewtopic.php?p=12394#12394
_________________
С уважением Vasilisk
Уважайте читающих, используйте тэги [code ][/code]
Exit_in_City
Новичок

Зарегистрирован: 15.08.2008
Сообщения: 8

[13692] Вс Мар 29, 2009 13:29

Неа Smile Там просто учат работать с document, это я умею)) Кстати и в Opera с тех пор уже добавили функцию document. Проблема более узкая:

Код:


<xsl:value-of select="document('путь_к_документу')/node"/>


Если 'путь_к_документу' будет локальный('name.xml','../name.xml' тд) то работает во всех браузерах и значение нужной node будет передано, а если будет через HTTP('http://blogs.msdn.com/rustudents/rss.xml', 'http://blogs.technet.com/tasush/rss.xml', 'http://....' и тд) то в Opera и главное FF не работает!
Vasilisk
Наставник

Зарегистрирован: 17.05.2006
Сообщения: 370
Откуда: Украина, Харьков
[13693] Вс Мар 29, 2009 16:29

Имхо, это не бага, а фича. Секьюрити.
_________________
С уважением Vasilisk
Уважайте читающих, используйте тэги [code ][/code]
Гость





[13704] Ср Апр 01, 2009 23:09

К сожалению соглашусь Smile А было бы удобно так внешнии RSS на клиенте парсить...