webForumDet fria alternativet

XML vill inte visas...

XML

12 svar · 504 visningar · startad av Darren

Medlem sedan dec. 2002789 inlägg
Frågan#1

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"> &lt; </button>&nbsp;
<button onClick="bilder.nextPage()" title="nästa sidan"> &gt; </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?

Medlem sedan feb. 200321 inlägg
#2

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

Medlem sedan juli 20013 378 inlägg
#3

<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

Medlem sedan dec. 2002789 inlägg
#4

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?

Medlem sedan juli 20013 378 inlägg
#5

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...

Medlem sedan dec. 2002789 inlägg
#6

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.

Medlem sedan juli 20013 378 inlägg
#7

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?

Medlem sedan dec. 2002789 inlägg
#8

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.

Medlem sedan juli 20013 378 inlägg
#9

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>
Medlem sedan dec. 2002789 inlägg
#10

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.

Medlem sedan juli 20013 378 inlägg
#11

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="/">
&amp;lt;?php
echo "Alla mina bilder&amp;lt;br/&amp;gt;";
      <xsl:for-each select="INVENTARIUM/BILD">
echo "<xsl:value-of select="RUBRIK"/>&amp;lt;br/&amp;gt;";
echo "<xsl:value-of select="NAMN"/>&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;";
      </xsl:for-each>
?&amp;gt;
   </xsl:template>
</xsl:stylesheet>
Medlem sedan dec. 2002789 inlägg
#12

Det var snabbt... Skall ta en titt på detta.

Tack.

Medlem sedan dec. 2002789 inlägg
#13

Hmmm... Får inte koden att fungera. Netscape/Mozilla totalt vägrar och IE visar bara en tom sida.

265 ms totalt · 3 externa anrop · v20260731065814-full.c4b5ca48
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)