XML z XSL nie działa w FireFox

0

A dokładniej plik xsl nie jest brany pod uwagę przy przetwarzania xml. W IE wszystko gra a w FF dostaję dane bez sformatowania.

Sprawdziłem poprawność zapisu i niby wszystko się zgadza.

A więc po kolei co robię.

  1. Skrypt PHP generuje stronę xml i ją wyświetla
<?php echo"<?xml version=\"1.0\" encoding=\"Windows-1250\" ?>\n";

echo"<?xml-stylesheet type=\"text/xsl\" href=\"aaa.xsl\"?>\n";
echo"<START>\n";

// dostęp do bazy
// .....
// odczyt z bazy i zapis rekordów

while ($row = ibase_fetch_object($sth))
{
print" <rekord>\n";
print" <lp>" . $row->LP . "</lp>\n";

... itd.

  1. Na serwerze w tym samym miejscu co skrypt PHP jest plik xsl aaa.xsl
<?xml version="1.0" encoding="Windows-1250" ?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template match="/">
<html>
<head>
</head>
<body>

<xsl:apply-templates/>

</table>
</body>
</html>

</xsl:template>

<xsl:template match="START/rekord">

<xsl:apply-templates select="lp"/></td>
<xsl:value-of select="nazwa"/> </td>
... itd.

I gdy uruchomię skrypt PHP pod IE to dostaję dane ładnie sformatowane w tabelkę jak miało być a jak pod FF to mam ciągi danych bez formatowania np.

1 Magazyn remontowy 0 2 Urządzenia usunięte 0 itd.

Gdy usunę w ogóle plik aaa.xsl z servera to FF wyświetla tak samo więc dumam, że ten odnośnik do aaa.xsl mam źle zapisny.
echo"<?xml-stylesheet type=\"text/xsl\" href=\"aaa.xsl\"?>\n";

Dobrze myślę? A jeżeli tak to jak toto zapisać?

0

Ja nie chcę nic mówić, ale tagi XML pisze się małymi literami. Tak jak i nazwy właściwości. A Ty już na samym początku masz "<START>". Nie wiem, czy to wina tego, ale wiem jedno: to IE ma problemy z interpretacją XML'a, nie FF.

0

Ten <START> to tylko tak napisany bo w kodzie mam <listing_z_bazy_testowo> a togło trochę zaciemniać obraz sytuacji.

Co do FF to napisałem, że nie czepiam się FF tylko prawdopodobnie mojej składni bo jak wiadomo FF jest bardziej restrykcyjny od IE.

0

Tagi w pliku XML można pisać dowolną wielkoscią znaków, różnica polega na tym że w XML-u wielkość ma znaczenie także tag '<aa>' to nie to samo co tag '<Aa>'
W XHTML-u tagi i atrybuty muszą być pisane małymi literami...

Ja myslę że to jest kwestia nagłówków wysyłanych do przeglądarki domyślnie PHP jeżeli się nie myle informuje że zwraca HTML-a więc FF traktuje to co dostaje jako HTML, myślę że pwinieneś wysłac odpowiednie nagłówki do przegladarki, było już o tym na forum:

http://4programmers.net/Forum/206691?h=nag%C5%82%C3%B3wki#206691

0

Panczo - jesteś wielki [!!!]

header("Content-type:text/xml"); pomogło

:)

Niestety mój optymizm był chwilowy.

W IE, FireFox i Mozilli wszystko gra.
W Operze niestety nie formatuje.
Ręce "opadowywują" normalnie. Gdzie te standardy?
</ort>

0
Marcin_J23 napisał(a)

Niestety mój optymizm był chwilowy.

W IE, FireFox i Mozilli wszystko gra.
W Operze niestety nie formatuje.
Ręce "opadowywują" normalnie. Gdzie te standardy?
</ort>

niestety, nic z tym nie zrobisz, opera nie daje rady i tyle :(

1 użytkowników online, w tym zalogowanych: 0, gości: 1