Avatar billede morch Nybegynder
12. marts 2003 - 18:32 Der er 6 kommentarer og
1 løsning

Hent xml med javascript

Hvordan gør man dette i javascript ? Kan man ?

<%
Dim objXMLHTTP, objXMLDOM
Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
Set objXMLDOM = Server.CreateObject("Microsoft.XMLDOM")
Call objXMLHTTP.Open("GET", "http://xxx.dk/filnavn.xml", False)
objXMLHTTP.Send
Set objXMLDOM = objXMLHTTP.ResponseXML
Set title = objXMLDOM.getElementsByTagName("item")
For i = 0 To title.length - 1
    set title2 = title(i)
    vifte=split(title2.selectSingleNode("title").Text,"|")
   
    Response.Write("<tr><td>" & vifte(0) & "&nbsp;</td><td>" & vifte(1) & "&nbsp;</td><td>" & vifte(2) & "&nbsp;</td><td>" & vifte(3) & "&nbsp;</td>")
    Response.Write("<td><a href='http://" & title2.selectSingleNode("link").Text & "' target='_blank'>" & title2.selectSingleNode("link").Text & "</a>&nbsp;</td>")
    Response.Write("<td>"&title2.selectSingleNode("description").Text & "&nbsp;</td></tr>")
    Set title2 = Nothing
Next
Set title2 = Nothing
Set objXMLHTTP = Nothing
Set objXMLDOM = Nothing
%>
Avatar billede olebole Juniormester
12. marts 2003 - 22:32 #1
<ole>

Njaahhhh ... men du kan i JScript. Mon ikke det skal ligne sådan noget:

<script language="JScript">
var objXMLHTTP,objXMLDOM,title,title2,vifte,aRet=new Array();
objXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
objXMLDOM = new ActiveXObject("Microsoft.XMLDOM")
objXMLHTTP.Open("GET", "http://xxx.dk/filnavn.xml", false);
objXMLHTTP.Send();
objXMLDOM = objXMLHTTP.ResponseXML;
title = objXMLDOM.getElementsByTagName("item");
for (i=0; i<title.length; i++) {
    title2 = title[i];
    vifte = title2.selectSingleNode("title").Text.split("|");
    aRet[aRet.length] = "<tr><td>" + vifte[0] + "&nbsp;</td><td>" + vifte[1] + "&nbsp;</td><td>" + vifte[2] + "&nbsp;</td><td>" + vifte[3] + "&nbsp;</td>";
    aRet[aRet.length] = "<td><a href='http://" + title2.selectSingleNode("link").Text + "' target='_blank'>" + title2.selectSingleNode("link").Text + "</a>&nbsp;</td>";
    aRet[aRet.length] = "<td>" + title2.selectSingleNode("description").Text + "&nbsp;</td></tr>";
}
document.write( aRet.join("\n") );
</script>

/mvh
</bole>
Avatar billede morch Nybegynder
13. marts 2003 - 09:00 #2
Desværre - jeg skal bruge en eller anden form for javascript og har selv fundet en løsning.
Avatar billede olebole Juniormester
13. marts 2003 - 17:42 #3
Jamen, du kan som sagt ikke lave det i JavaScript - men i JScript.
Hvad fungerede ikke i det eksempel, jeg gav dig?
Hvad er det for en løsning, du har fundet ... må vi se den?
Avatar billede morch Nybegynder
13. marts 2003 - 18:52 #4
Det fungerede ikke.

Nedenståendende ( http://morch.dk/xmlform/10.htm ) fungerer til det jeg har brug for:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Storflykalender</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<STYLE type=text/css>BODY {
    FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: verdana,arial,helvetica
}
TD {
    FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: verdana,arial,helvetica
}
.head {
    FONT-WEIGHT: bold; FONT-SIZE: 25pt; COLOR: #000000; FONT-FAMILY: verdana,arial,helvetica
}
.link {
    FONT-SIZE: 10pt; COLOR: #003399; FONT-FAMILY: verdana,arial,helvetica
}
.link:hover {
    FONT-SIZE: 10pt; COLOR: #0066cc; FONT-FAMILY: verdana,arial,helvetica
}
</STYLE>

<SCRIPT language=JavaScript>
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
function loadXML(xmlFile) {
    xmlDoc.async="false";
    xmlDoc.onreadystatechange=verify;
    xmlDoc.load(xmlFile);
}
function verify() {
    if(xmlDoc.readyState!=4)
        return false;
}
function traverse(tree) {
    if(tree.hasChildNodes()) {
        var nodes=tree.childNodes.length;
        for(var i=0; i<tree.childNodes.length; i++)
            traverse(tree.childNodes(i));
        document.write('<br>');
    }
    else
        document.write(tree.text);
}

function initTraverse(file) {
    loadXML(file);
    var doc=xmlDoc.documentElement;
    traverse(doc);
}
</SCRIPT>

<META content="MSHTML 6.00.2800.1141" name=GENERATOR></HEAD>
<BODY>
<CENTER><SPAN class=head>Storflykalender</SPAN> <BR><BR>
<TABLE align=center>
  <TBODY>
  <TR>
    <TD><FONT face=courier>
      <SCRIPT language=JavaScript>
    initTraverse("http://njfk.dk/njfknews/db/storfly.xml");
    </SCRIPT>
      </FONT></TD></TR></TBODY></TABLE></CENTER></BODY></HTML>


Mvh

morch
Avatar billede olebole Juniormester
13. marts 2003 - 21:32 #5
1. Det er jo ikke en JavaScript-løsning, men en JScript-løsning, der er lagt ind i forkerte script-tags.

2. Hvad fungerede ikke?

3. Når du stiller spørgsmål her på sitet, sætter du andre mennesker i gang med at bruge deres fritid på at hjælpe dig.
Skal der være nogen mening med, at de gør det, er det nok en god idé, at deltage konstruktivt i forsøget med at finde frem til en brugbar løsning ... ikke mindst, når man ikke behersker diciplinen at stille et brugbart spørgsmål.

Du skriver jo ingen steder, hvad du vil eller forventer - og derfor fik du i første omgang en direkte oversættelse. At det skulle kunne noget andet, end dit oprindelige VBScript skrev du ikke noget om.

Næste gang du stiller et spørgsmål skal du nok ikke forvente, jeg har den store lyst til at spilde min tid på at hjælpe.
Avatar billede morch Nybegynder
13. marts 2003 - 22:22 #6
1. Hvad ved jeg? Det var jo derfor jeg spurgte.......

2. Din oversættelse virkede ikke. Jeg bliver ved med at få fejl:
  Linie: 19
  Fejl: 'title2selectSingleNode(...).Text er null eller ikke et objekt

I mellemtiden fandt jeg ovenstående script, som måske er "forkert", men som med med et par modifikationer, kan gøre det jeg vil have det til.

3. Jeg spurgte: Hvordan gør man dette i javascript ? Kan man ? Du svarer selv: "Njaahhhh ... "

I mine ører er det et nej, og så måtte jeg jo søge videre. Jeg bruger selv meget tid på at hjælpe andre i tilsvarende fora, så spar mig venligst for dine sure opstød. Hvis det er pointene du vil have så skal jeg gerne oprette et nyt spørgsmål, hvis det kan gøre dig til et gladere menneske.

Med VENLIG hilsen

morch
Avatar billede olebole Juniormester
13. marts 2003 - 23:25 #7
1. Det ved jeg godt, du ikke ved noget om ... derfor svarer jeg jo også.

2. Jamen, netop den fejl-oplysning havde jo gjort, at jeg kunne have hjulpet dig.

3. Der er jo ingen grund til at søge videre, når du får svaret, at det kan man ikke.
Med mindre, du ikke tror på svaret - og i så fald synes meningen med at spørge ikke helt transparent.

Det bekymrer mig, du ikke fatter min kritik - omend, det netop siger mig, den ikke er helt forfejlet. Det handler om attitude ... ikke points.

PS: Du behøver ikke at råbe, du hilser mig venligt. Mener du det, kan du bare skrive det almindeligt. Mener du det ikke, kan du blot udelade det  :)
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