Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > Некоректное отображение xml файла в ie и opera


Автор: asa12 19.10.2007, 09:06
Всем доброго времени суток.
Пожалуйста помогите разобраться с одним вопросом. 
Есть обычная html страничка с фреймовой структурой. В один из фреймов нужно подгружать html файл который создается из xml с использованием xsl. Дак вот ежели я пользуюсь только этими файлами то в опере все нормально работает а вот в интернет эксплоере отображается с тегами:
news.xml:
Код

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xml" href="news.xsl"?>
<news>
   <new>
      <chapter>
         Заглавие
      </chapter>
      <text>
         текст новости
       </text>
   </new>
   <new>
      <chapter>
         Заглавие
      </chapter>
      <text>
        текст новости
      </text>
   </new>
   <new>
      <chapter>
         Заглавие
      </chapter>
      <text>
        текст новости
      </text>
   </new>
   <new>
      <chapter>
        Заглавие
      </chapter>
      <text>
        текст новости
      </text>
   </new>
   <new>
      <chapter>
         Заглавие
      </chapter>
      <text>
         текст новости
      </text>
   </new>
</news>
 

news.xsl:
Код

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match=" /">
        <html>
            <head>
                <title>ATF24 Service</title>
                <link href="../images/indexStyle.css" rel="stylesheet"/>
            </head>
            <body class="bodyInfo">
                <table width="98%" height="100%" border="1" cellspacing="0" cellpadding="2" align="center">
                    <tr colspan="2">
                        <td class="tdMenuInfo" height="20px">
                            <font color="#ffffff">
                                <b>ACCESSIBLE SERVICES</b>
                            </font>
                        </td>
                    </tr>
                    <tr colspan="2">
                        <td height="5px"/>
                    </tr>
                    <tr>
                        <td width="11px" valign="top">
                            <img src="../images/arrow_menu.gif" width="10" height="10" border="0" alt="" class="picturesRight"/>
                        </td>
                        <td>
                            <xsl:for-each select="/news/new">
                                <b><xsl:value-of select="."/></b><br/>
                                <xsl:value-of select="."/><p/>
                            </xsl:for-each>
                        </td>
                    </tr>
`</table>
            </body>
        </html>
    </xsl:template>
    <!--<xsl:template match="chapter">
        <b>
            <xsl:value-of select="."/>
        </b>
        <br/>
    </xsl:template>
    <xsl:template match="text">
        <xsl:value-of select="."/>
        <p/>
    </xsl:template>-->
</xsl:stylesheet>


Попробовала подругому. Использовала xml и xsl файл только в нужный фрейм подгружала уже такой html файл:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>ATF 24 Service</title>
    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">

<script type="text/javascript">

var xml =new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("news.xml")

var xsl =new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("news.xsl")

document.write(xml.transformNode(xsl))

</script>

<!--<link href="../images/indexStyle.css" rel="stylesheet">-->
<title>ATF24 Service</title>
<link href="../images/indexStyle.css" rel="stylesheet"/>

</head>

<body>



</body>
</html>

При таком способе в интернет эксплоере работает а в опере нет.
Люди, подскажите, пожалуйста как совместить чтобы и в опере работало и в эксплоере   smile 
Заранее спасибо.

Автор: Shedar 19.10.2007, 13:38
ActiveXObject-ы используются в IE. В Опере и Мозилле для xslt используется XSLTProcessor.

Автор: SelenIT 20.10.2007, 00:33
asa12, попробуйте, делая по первому варианту, заменить <?xml-stylesheet type="text/xml" href="news.xsl"?> на <?xml-stylesheet type="text/xsl" href="news.xsl"?>.

И еще, по-моему, у Вас html какой-то странный - colspan нужен в <td>, а не в <tr>, <p/> - неправильно (<p> не может быть пустым), ` перед </table> (явная опечатка)... это что сходу в глаза бросилось.

Автор: asa12 22.10.2007, 06:42
SelenIT, спасибо огромное smile 
все заработало!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)