Hej.
Nu vet jag inte vilka andra webbläsare du syftar på. Men det är inte alla webbläsare med stöd för XML.
//Nikki
12 svar · 504 visningar · startad av Darren
Har precis börjat att titta på det här med XML och har redan stött på ett problem. Infogar koden som visar vad jag har gjort:
bilddatabas.xml
<?xml version="1.0" encoding="UTF-8"?>
<BILDDATABAS>
<BILD>
<NAMN>test.jpg</NAMN>
<RUBRIK>test rubrik</RUBRIK>
</BILD>
<BILD>
<NAMN>test1.jpg</NAMN>
<RUBRIK>test rubrik 1</RUBRIK>
</BILD>
<BILD>
<NAMN>test2.jpg</NAMN>
<RUBRIK>test rubrik 2</RUBRIK>
</BILD>
<BILD>
<NAMN>test3.jpg</NAMN>
<RUBRIK>test rubrik 3</RUBRIK>
</BILD>
<BILD>
<NAMN>test4.jpg</NAMN>
<RUBRIK>test rubrik 4</RUBRIK>
</BILD>
<BILD>
<NAMN>test5.jpg</NAMN>
<RUBRIK>test rubrik 5</RUBRIK>
</BILD>
</BILDDATABAS>
xml_test.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>XML Test...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<xml id="bilddata" src="bilddatabas.xml"></XML>
<table id="bilder" datasrc="#bilddata" datapagesize="3" border="1">
<tr>
<td align="center"><img datafld="NAMN"></td>
</tr>
<tr>
<td><span datafld="TEXT"></span></td>
</tr>
</table>
<button onClick="bilder.previousPage()" title="förra sidan"> < </button>
<button onClick="bilder.nextPage()" title="nästa sidan"> > </button>
</body>
</html>
Nu till problemet. Bindningen av bilddatabas.html med xml_test.html fungerar i Internet Explorer, men den fungerar inte i någon annan webbläsare.
Kan någon snäll person förklara hur jag kan få koden att fungera även i de andra webbläsarna?
Hej.
Nu vet jag inte vilka andra webbläsare du syftar på. Men det är inte alla webbläsare med stöd för XML.
//Nikki
<xml>-taggar i HTML-sidor (XML Data Islands) och datasrc-attribut är 100% Microsoft-specifika, så det blir nog svårt är jag rädd...
Se även resonemanget i http://www.webforum.nu/showthread.php?s=&threadid=62909
Vad dummt... Jag sitter här och följer boken XML steg för steg (andra utgåvan) av Michael J. Young.
Vad är meningen med boken om den bara lär en att använda microsoft specfikt XML?
Fungerar XSLT i alla webbläsare?
Fungerar XSLT i alla webbläsare?
Nej - tyvärr inte. Vill du vara säker på att det du transformerar med XSLT skall funka i *alla* webbläsare får du nog fundera på att köra transformationen på serversidan...
Serversidan ja... Det kanske skulle lösa mina problem. Men det jag vill göra skall distribueras på cd-skivan och måste fungera utan att ha en webbserver inblandad.
Hmm...
Har inte fått klart för mig exakt vad du siktar på...
Men hur stort är omfånget på informationen?
Om du har plats på skivan kan du ju "blåsa ut" färdigtransformerade, statiska, HTML-filer som genereras (och länkas) automatskt från din XML-fil på lämpligt sätt?
Lite dummt att jag skapade två trådar om samma sak...
Om du går till http://www.art-graphics.se/ så skall jag försöka förklara vad jag vill göra.
När du kommer till första sidan på ArtGraphics kan du klicka på ett thumbnail som listar alla bilder i en viss kategori. Om du nu klickar på "större bild" knappen under någon av bilderna får du se bilden i full storlek. På denna sidan kan du nu välja vilken ram du vill att bilden skall ha samt om du vill använda någon passepartout till bilden. En väldigt bra funktion för gallerier tycker jag...
Så för att slippa hårdkoda ett par hundra bilder/passpartouter som en galleri har så vill jag ladda de uppgifterna från en XML-fil (typ som en databas). Allt detta skall distribueras på en cd-skiva så någon scriptspråk kan jag inte använda mig utav.
Hoppas att jag lyckades förklara allt detta lite bättre nu.
Kan du ställa krav på att användarnas webbläsare måste ha Javascript påslaget?
I så fall skulle du kanske kunna klura lite på om du inte skulle kunna generera javascript-kod för de olika urvals- och presentationsfunktionerna från din XML-databas med några lämpliga XSLT-mallar till olika filer och sedan lägga med dessa javascript-filer på CD:n i stället för XML-dokumentet... (man kan ju generera vilken typ av text som helst ur XML med XSLT - även källkod ;) )
Typ (osäker på om det är korrekt syntax, se bara till principen ;) )
bildtagg.js
function skrivbildtagg(bilden) {
switch (bilden) {
case 'foo': bildfilen='foo.jpg'; break; //Autogenererad ur XML med XSLT
case 'bar': bildfilen='bar.jpg'; break; //Autogenererad ur XML med XSLT
default: break;
}
document.write('<img src='+bildfilen+'>');
}
ensida.html
<head>
...
<script type="text/javascript" src='bildtagg.js" ></script>
...
</head>
<body>
<script type="text/javascript">
...
...
aktuellbild=.....
...
...
skrivbildtagg(aktuellbild);
</script>
</body>
Hmmm... Det skulle kanske gå ja.
Men hur gör man om galleriet själv skall kunna lägga in nya bilder, ramar eller passpartouter. Då är det väldigt enkelt att gå in i en XML fil, lägga till ett par rader så är det klart.
Om jag genererar filer så får kunden aldrig samma frihet. Visserligen blir det mer pengar för mig om jag använder mig av ditt förslag. :)
Har du något ex. på hur man gör när man genererar källkod mha XML/XSLT? Skulle gärna vilja ha en titt på det...
Tack för hjälpen så länge.
För att ta exemplet från din andra tråd (http://www.webforum.nu/showthread.php?s=&threadid=65909 för er som inte parallelläser ;) ) och generera PHP:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
&lt;?php
echo "Alla mina bilder&lt;br/&gt;";
<xsl:for-each select="INVENTARIUM/BILD">
echo "<xsl:value-of select="RUBRIK"/>&lt;br/&gt;";
echo "<xsl:value-of select="NAMN"/>&lt;br/&gt;&lt;br/&gt;";
</xsl:for-each>
?&gt;
</xsl:template>
</xsl:stylesheet>
Hmmm... Får inte koden att fungera. Netscape/Mozilla totalt vägrar och IE visar bara en tom sida.