Avatar billede svarrer Nybegynder
13. april 2005 - 11:01 Der er 9 kommentarer og
1 løsning

XML- databinding vha. Javascript

Hejsa..

Jeg sidder og prøver at få fyldt en html-<select> med data fra et xml dokument. (på prøve basis)...
problemmet ligger i at det virker som om jeg ikke kan få oprette forbindelse til xml-dokumentet?

kode:
//--------------HTML------------------
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">

function populateList(target, srcid, order) {
// target - The list box to populate
// src - The datasource object
// order (boolean) - true - the order of the recordset
// false - the reverse order of the recordset
var src = document.getElementById(srcid);
var rc = src.recordset
rc.moveFirst()
var el
target.remove(0)
while (!rc.eof) {
// Create new option element
el = new Option
// Display first column
el.text = rc.Fields('ARTIST').value
// Set value to second column
el.value = rc.Fields(0).value
// Add to list box
if (order)
target.add(el)
else
target.add(el,0)
rc.moveNext()
}
// reenable the list box
target.disabled = false
}
function upload()
{
var target = document.getElementById('listbox');
populateList(target, 'cdcat', true)
}
</SCRIPT>
</head>
<body onload= upload()>

<xml id="cdcat" src="cd_catalog.xml"></xml>

<h1> test</h1>
<table border="1" datasrc="#cdcat">

<tr>
<td><span datasrc="#cdcat" datafld="ARTIST"></span></td>
<td><span datafld="TITLE"></span></td>
</tr>
</table>

<Select size="5" id="listbox" DISABLE>
<OPTION STYLE="text-decoration: italic">Loading...
</SELECT>

</body>
</html>

//----------XML'en.---------------
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <!-- Edited with XML Spy v4.2
-->
- <CATALOG>
- <CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
....osv...

Jeg har placeret html-filen og Xml-filen i samme katalog, men virker hverken fra min pc, eller fra webserver..
js-fejlen: "rc. has no properties"
hverken tabellen eller select-boxene får data.?!

på forhånd tak
/Christian
Avatar billede hyberpreprocessor Nybegynder
13. april 2005 - 11:10 #1
Du skal bruge JScript (ActiveX, IE only) til det. Eller også et serverside sprog som PHP/ASP/JSP.

Hvilket et undersøtter din server ?
Avatar billede svarrer Nybegynder
13. april 2005 - 11:15 #2
Hmm.. Det nytter ikke noget at det kun virker på IE, skal også virke på Firefox.. (en del af min kravspec. )
Serveren understøtter jsp, men bruger udelukkende Java Servlets.

...det mærkelige er, at HTML'en fungere fint, hvis man benytter sig af w3shools "try-it" online editor?.. (hele eksemplet er derfra, også XML'en)
prøv: http://www.w3schools.com/xml/tryit.asp?filename=cd_catalog_island
og så skift HTML'en i venstre side ud med min.. så virker det?!

på forhånd tak
/Christian
Avatar billede hyberpreprocessor Nybegynder
13. april 2005 - 11:29 #3
http://www.w3schools.com/xml/tryit.asp?filename=cd_catalog_island

Virker da kun i IE, Firefox henter ingen data.

"Serveren understøtter jsp, men bruger udelukkende Java Servlets."

En servlet burde også nemt kunne hente xml data ud, men der skal du over i J2EE kategorien, jeg har ikke fået lært det endnu (er i gang med simpelt jsp pt.)
Avatar billede svarrer Nybegynder
13. april 2005 - 11:34 #4
Sowi.. havde faktisk ikke prøvet i firefox!..
Men tak for den hurtige tilbagemelding!..

post et svar..så smider jeg lidt points efter dig..
For du har egentlig løst det for mig... = det kan ikke lade sig gøre! pga FF :-)

Mvh
Christian
Avatar billede hyberpreprocessor Nybegynder
13. april 2005 - 11:35 #5
okay :)

Du kan se en simpel XML parser via. regulær expression her (i php dog, men kan vel give lidt inspiration)

http://www.thedeathart.dk/diverse/xmlregex.php
Avatar billede olebole Juniormester
13. april 2005 - 19:29 #6
<ole>

Undskyld, men hvornår er Mozilla holdt op med at understøtte XML?  :)

/mvh
</bole>
Avatar billede svarrer Nybegynder
15. april 2005 - 09:56 #7
olebole@
Hmm.. pas??..Har du eventuelt noget kode som virker i FF??.. for jeg har ikk kunne få det til at fungere??

Mvh
Christian
Avatar billede olebole Juniormester
15. april 2005 - 19:05 #8
Avatar billede hyberpreprocessor Nybegynder
16. april 2005 - 17:44 #9
olebole

XUL er jo noget helt tredie, JScript parseren til XML er jo IE only, ligesom XUL er Mozilla only. XUL er dog langt mere genialt end JScript.

(Har selv gang i noget kalenderværk i XUL->J2EE)

Det mest kompatible er at bruge et serverside sprog til at parse xml med, og outputte statisk html.
Avatar billede olebole Juniormester
16. april 2005 - 19:04 #10
Naturligvis er Mozilla's parser ikke det samme som IE's parser ...... og så? Du kan sagtens bruge XML i Moz  :)

Måske, nogen finder XUL genialt - og langt mere end JScript - men det, går jeg afgjort udfra, må have sin begrundelse i, at de pågældende aldrig har checket, hvad det bruger af resourcer og hvor ringe det performer.

Parser man XML'en serverside, har man vist ikke fanget så meget af idéen med XML. Udveksling af data mellem server og klienter hører jo til blandt de vigtigste årsager til overhovedet at bruge teknologien.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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