Avatar billede laah Nybegynder
01. december 2006 - 13:47 Der er 5 kommentarer

Billedsti fra xml tag, til img tag i html dokument

Hej,

Jeg bruger nedenstående kode til at trække data fra en xml-fil over i et html dokument. Det virker fint med tekster, men jeg har et tag i xml filen som hedder: "billed". Dette tag indeholder stien til en billedefil ("http://www.minside/mitbillede.jpg") - hvordan får jeg dette korrekt ind i et "img tag" i html dokumentet?

<head>
<script type="text/javascript">
var xmlDoc;
function loadXML()
{
// code for IE
if (window.ActiveXObject)
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async=false;
  xmlDoc.load("data.xml");
  getmessage();
  }
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation &&
document.implementation.createDocument)
  {
  xmlDoc=document.implementation.createDocument("","",null);
  xmlDoc.load("data.xml");
  xmlDoc.onload=getmessage;
  }
else
  {
  alert('Din browser kan ikke håndtere det script, som bruges på denne side');
  }
}function getmessage()
{
document.getElementById("titel").innerHTML=
xmlDoc.getElementsByTagName("titel")[0].childNodes[0].nodeValue;
document.getElementById("beskrivelse").innerHTML=
xmlDoc.getElementsByTagName("beskrivelse")[0].childNodes[0].nodeValue;
}
</script>
</head>

<body onload="loadXML()">

  <h1><span id="titel"></span></h1>
  <span id="beskrivelse"></span><br />

</body>
Avatar billede olebole Juniormester
01. december 2006 - 14:21 #1
<ole>

Hvis du bruger XML, går jeg udfra, du også bruger XHTML - og så er innerHTML-property'en jo en absolut no-no!
Det er en invalid property, der aldrig har været del af nogen officiel standard (og bliver det aldrig). Den er desuden komplet inkompatibel med XML-DOM - som jo er det, man bruger under XHTML.
Hvis du en dag kommer til at bruge den i en browser, der faktisk understøtter XHTML (korrekt), vil browseren gå ned med en XML-fejl og et suk  =)

Derfor har man heller ikke HTML-tags liggende i XML-filer - men f.eks. stier/url'er til billeder. Når du har læst stien, opretter du et billed-element med DOM, sætter stien på som en src-attribut og append'er img-elementet på rette sted i (X)HTML-DOM'en

/mvh
</bole>
Avatar billede laah Nybegynder
01. december 2006 - 14:36 #2
Tak Ole,

Ja jeg bruger XHTML, og det er bare stien/url'en fra <billed> tagen i xml-filen, som jeg vil anvende i min <img src> i html-dokumentet.

Jeg er absolut ikke ret meget hjemme i "xml/javascript"...
Kan du hjælpe mig i gang med lidt kode?

/Lars
Avatar billede olebole Juniormester
01. december 2006 - 14:47 #3
Hvis du allerede har et billed-element liggende, kan du gøre noget à la:

document.getElementById("billed").setAttribute("src",
xmlDoc.getElementsByTagName("billed")[0].childNodes[0].nodeValue);

- og innerHTML i dit eget eksempel undgår du ved:

document.getElementById("titel").firstChild.nodeValue=
xmlDoc.getElementsByTagName("titel")[0].childNodes[0].nodeValue;

- forudsat dit span har en 'firstChild' ... iform af en tekstnode:
    <span id="titel">&nbsp;</span>
Avatar billede laah Nybegynder
01. december 2006 - 15:49 #4
Mange tak for hjælpen Ole :-)

Virker rigtig fint nu.

Med venlig hilsen

Lars
Avatar billede olebole Juniormester
05. december 2006 - 15:46 #5
Selvtak .... så lægger jeg et svar  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester