Avatar billede mikmakmuk Nybegynder
25. april 2006 - 14:29 Der er 26 kommentarer og
1 løsning

Løbe en XML fil igennem

Hej Eksperter,

Jeg er kommet lidt på den. Jeg havde et script engang som kunne løbe en XML fil igennem og sætte resultatet op i en tabel. Er der en som kan vise mig hvordan man gør det
Avatar billede olebole Juniormester
25. april 2006 - 15:02 #1
<ole>

Hvordan ser din XML-fil - og ønskede tabel-struktur - ud?

/mvh
</bole>
Avatar billede mikmakmuk Nybegynder
25. april 2006 - 15:38 #2
Min XML fil er resultatet af et databaseudtræk. Jeg har noget gammelt som ser således ud


function showXML(kunst)
{
  //What Browser?
   
    if(!document.all) {
    xmlhttp = new XMLHttpRequest();

    } else {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }


    xmlhttp.open("POST","http://80.199.13.189:8080/xmltest/Login",false)
    xmlhttp.send(kunst)

    var dom = xmlhttp.responseXML;
   
    var html = new Array();
               
    html[html.length] = "<table style=\"width:500px;\">\n";
   
    var x=dom.getElementsByTagName("nr").length;
 
    for(i=0;i<x;i++) {
    var kunstner = dom.getElementsByTagName("kunstner").item(i).firstChild.nodeValue;
    var album = dom.getElementsByTagName("album").item(i).firstChild.nodeValue;
    var title = dom.getElementsByTagName("title").item(i).firstChild.nodeValue;
   

   
    html[html.length] = "<tr><td style=\"width:200px;\">" + kunstner + "</td><td style=\"width:150px;\">" + album + "</td><td style=\"width:150px;\">" + title +"</td></tr>\n";

    }

    html[html.length] = "</table>\n";
               
    var allhtml = html.join("\n");
    document.getElementById("indhold").innerHTML = allhtml;

}

</script>
Avatar billede olebole Juniormester
25. april 2006 - 15:42 #3
Jeg kan ikke se din XML-fil. Prøv at smide et link til den
Avatar billede mikmakmuk Nybegynder
25. april 2006 - 16:04 #4
Det vil jeg meget gerne men jeg er ikke kommet så langt endnu :-)
Avatar billede olebole Juniormester
25. april 2006 - 16:06 #5
- så venter jeg, til du er  =)
Avatar billede olebole Juniormester
25. april 2006 - 16:08 #6
- men hvorfra ved du, det ikke virker, hvis ikke du har en XML-fil at teste med?  :)
Avatar billede mikmakmuk Nybegynder
25. april 2006 - 19:51 #7
<script type="text/javascript">

    xmlhttp = new XMLHttpRequest();

    xmlhttp.open("POST","http://web-oasen.dk/Varer",false)
    xmlhttp.send()

    var dom = xmlhttp.responseXML;
   
    var html = new Array();
               
    html[html.length] = "<table style=\"width:350px;\">\n";
   
    var x=dom.getElementsByTagName("nr").length;
 
    for(i=0;i<x;i++) {
    var kunstner = dom.getElementsByTagName("navn").item(i).firstChild.nodeValue;
    var album = dom.getElementsByTagName("antal").item(i).firstChild.nodeValue;
   
 
    html[html.length] = "<tr><td style=\"width:200px;\">" + navn + "</td><td style=\"width:150px;\">" + antal + "</td></tr>\n";

    }

    html[html.length] = "</table>\n";
               
    var allhtml = html.join("\n");
    document.getElementById("indhold").innerHTML = allhtml;

}

</script>
Avatar billede olebole Juniormester
25. april 2006 - 20:29 #8
- eeehhhhh ...?? .... og ...?!??!!  =)
Avatar billede mikmakmuk Nybegynder
25. april 2006 - 20:46 #9
Jeg har lidt problemer med at få en servlet til at returnere det XML jeg gerne vil have :-)
Avatar billede mikmakmuk Nybegynder
25. april 2006 - 20:46 #10
Det er jo ligesom er forudsætning for at få resten til at spille :-)
Avatar billede mikmakmuk Nybegynder
26. april 2006 - 08:52 #11
Nu har jeg lavet en statisk xml fil. http://www.web-oasen.dk/test.xml og min side ser således ud

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
<html>

<%@ page language="java" import="java.util.*,java.sql.*,util.*" %>

<head>
<title>Web-oasen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>
<h2>WEB-OASEN.DK</h2>
<span id="indhold"></span>
<script type="text/javascript">

    if(!document.all) {
    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")
    xmlhttp = new XMLHttpRequest();
    serialize = new XMLSerializer();
    } else {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }


    xmlhttp.open("POST","http://web-oasen.dk/test.xml",false)
    xmlhttp.send()

    var dom = xmlhttp.responseXML;
   
    var html = new Array();
               
    html[html.length] = "<table style=\"width:200px;\">\n";
   
    var x=dom.getElementsByTagName("nr").length;
 
    for(i=0;i<x;i++) {
    var navn = dom.getElementsByTagName("navn").item(i).firstChild.nodeValue;
    var antal = dom.getElementsByTagName("antal").item(i).firstChild.nodeValue;
   
    html[html.length] = "<tr><td style=\"width:100px;\">" + navn + "</td><td style=\"width:100px;\">" + antal + "</td></tr>\n";

    }

    html[html.length] = "</table>\n";
               
    var allhtml = html.join("\n");
    document.getElementById("indhold").innerHTML = allhtml;

</script>

</body>
</html>

Det virker bare stadig ikke :-(
Avatar billede mikmakmuk Nybegynder
26. april 2006 - 08:56 #12
Siden ligger på http://web-oasen.dk
Avatar billede mikmakmuk Nybegynder
26. april 2006 - 09:00 #13
Nu er der et eller andet som virker, men hvorfor tager den kun den første ?
Avatar billede mikmakmuk Nybegynder
26. april 2006 - 09:04 #14
Så langt så godt. Nu virker det med en statisk xml fil :-)
Avatar billede olebole Juniormester
26. april 2006 - 13:01 #15
Husker du at serve den dynamiske XML-fil som XML? Jeg skriver ikke Java, men i PHP sætter du en HTTP-header sådan:

<?
header("Content-Type: text/xml; charset=iso-8859-1");

// Her udskrives XML'en
?>

- tegnsættet sættes naturligvis efter, hvad resten af applikationen kører. Mon ikke du kan finde udaf, hvordan det samme gøres i Java?  =)
Avatar billede mikmakmuk Nybegynder
26. april 2006 - 17:36 #16
response.setContentType("text/xml");
Avatar billede olebole Juniormester
26. april 2006 - 17:49 #17
- det lyder mere end sandsynligt  ;o)

Men sig mig ... er det bare min perforerede hukommelse, eller har vi to ikke været 'denne mølle' igennem for et årstid siden?  =)
Avatar billede mikmakmuk Nybegynder
26. april 2006 - 18:26 #18
Det skal nok passe. Dengang fik jeg det til at virke uden problemer. Det gør det bare endnu mere mærkeligt at det nu ikke vil spille
Avatar billede arne_v Ekspert
26. april 2006 - 18:33 #19
hvorfor vil du lave den transformation fra XML til HTML client side og ikke server side ?
Avatar billede mikmakmuk Nybegynder
26. april 2006 - 18:47 #20
Det vil jeg vel heller ikke. Jeg vil bare vise indholdet af en xml fil.
Avatar billede mikmakmuk Nybegynder
26. april 2006 - 18:48 #21
Nå fordi jeg gerne vil kunne tilgå XML'en fra andre sitet.
Avatar billede mikmakmuk Nybegynder
26. april 2006 - 19:02 #22
Det virker sådan set også, men jeg vil gerne have at xml filen bliver dannet dynamisk. Det er meningen at det skal virke som en slags "live scoring" Derfor skal xml filen laves via et databasekald i en servlet. Det som er super irriterende er at jeg har fået det til at virke i en anden sammenhæng, så jeg fatter ikke lige hvor det er det går galt
Avatar billede olebole Juniormester
27. april 2006 - 01:34 #23
Hvad servletten angår kan Arne garanteret hjælpe langt bedre end jeg  :)
Avatar billede olebole Juniormester
27. april 2006 - 01:44 #24
Hehe ... det var zq i slutningen af 2003 ... et langt årstid  =)
    http://www.eksperten.dk/spm/422830

Nu ved jeg ikke, hvad det er, der går galt, men prøver du at kalde XML-dokumentet direkte i en almindelig browser, når du tester det? Ellers så prøv.
Det kan være, der opstår en server-script fejl, der resulterer i en XML fejl, der kan give dig et hint om, hvor det går galt
Avatar billede mikmakmuk Nybegynder
27. april 2006 - 09:43 #25
Fejlen var en helt anden. Serveren var simpelhen konfigureret forkert.

Der stod JkMount /Varer tomcat hvor der skulle have stået JkMount /Varer tomcat5
Avatar billede olebole Juniormester
27. april 2006 - 16:06 #26
;D
Avatar billede mikmakmuk Nybegynder
01. maj 2007 - 18:36 #27
Rydder op
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