Avatar billede hangaard Nybegynder
07. juni 2002 - 16:20 Der er 18 kommentarer og
3 løsninger

Visning af XML-streng i browser

Hej!

Jeg har en tekst-streng i mit JavaScript som definerer et XML-dokument. Denne streng vil jeg gerne ha' smidt over i et nyt vindue, hvor det skal vises som XML.

Jeg har prøvet med:
nytVindue.document.write(xmlStreng);

Men tags'ene bliver strippet væk, og det er dem jeg gerne vil beholde i visningen.

Hvordan får jeg browseren til at behandle strengen som en XML-fil?

Mvh.
hangaard
Avatar billede delwin Nybegynder
07. juni 2002 - 16:21 #1
du må kun oprette det samme spørgsmål 1 gang.. luk det ene
Avatar billede delwin Nybegynder
07. juni 2002 - 16:21 #2
okay.. luk de 2 af dem..
Avatar billede Slettet bruger
07. juni 2002 - 16:32 #3
Prøv:

nytVindue.document.open("text/xml","replace");
nytVindue.document.write(xmlStreng);
nytVindue.document.close();

Jeg er sgu ikke helt sikker med den første linje... Jeg mener, det er noget i den stil!
Avatar billede medions Nybegynder
07. juni 2002 - 16:37 #4
<script language="JavaScript" type="text/javascript">
                          var conn = new ActiveXObject("Microsoft.XMLDOM");
                          conn.async = false;
                          conn.load("xml/profil.xml");
                                             
                          var rs1 = conn.getElementsByTagName("beskrivelse");
                          var n_rs = rs1.length
                          for (i = 0; i < n_rs; i++)
                          {
                          strIndex = rs1.item(i).text;
                          document.write("" + strIndex + "");
                          }
                </script>

//>Rune
Avatar billede Slettet bruger
07. juni 2002 - 16:40 #5
medions>> Jeg tror ikke han vil læse fra et XML-dokument, men snarere skrive et nyt et på en eller anden måde...
Avatar billede medions Nybegynder
07. juni 2002 - 16:43 #6
Det kan man jo ik' med JavaScript! - Der skal han over og bruger noget Server-Side...

//>Rune
Avatar billede hangaard Nybegynder
07. juni 2002 - 16:44 #7
Nej, jeg har ikke nogen XML-fil.
Jeg har fået genereret noget XML, som jeg har i en streng, og den vil jeg gerne ha' smidt ind i et browser-vindue og ha' vist med tags og hele molevitten.

Jeg kan ikke umiddelbart få phoenixv's svar til at virke, men prøver lige at rode lidt mere med det.
Avatar billede Slettet bruger
07. juni 2002 - 16:47 #8
medions>> Ikke skrive til en fil, men skrive selve koden til den, som så skal smides over i et nyt vindue. Som han selv siger! :)

hangaard>> Et link ville ikke være dårligt...
Avatar billede medions Nybegynder
07. juni 2002 - 16:48 #9
phoenixv> Ahh :-D Well, jeg ik' læst hans som ordentlig tror jeg ! ;-)

//>Rune
Avatar billede hangaard Nybegynder
07. juni 2002 - 16:53 #10
Jeg kan desværre ikke give et link lige nu.
Jeg prøver lige at lave et eksempel i weekenden som jeg kan smide på nettet, så smider jeg linket på, så I kan se hvad det er jeg vil ha'.

Tak for hjælpen indtil videre og god weekend!

hangaard
Avatar billede Slettet bruger
07. juni 2002 - 17:00 #11
OK, jeg står stand-by så! :)

(smid ikke flere kommentarer, hangaard, for ellers får jeg jo ikke en mail, når du kommer med linket - og så glemmer jeg garanteret spørgsmålet!)
Avatar billede =maddog= Nybegynder
07. juni 2002 - 17:03 #12
hvis du vil have < og > vist, hvorfor replacer du så ikke bare med &lt; og &gt;
Avatar billede Slettet bruger
07. juni 2002 - 19:09 #13
Det er vel ikke det, der er problemet. Browseren læser det bare ikke som en XML-fil, hvis man sådan udskriver en streng til et nyt browservindue, ligesom hvis siden havde heddet *.xml!
Avatar billede Slettet bruger
08. juni 2002 - 20:11 #14
Fx kan jeg ikke se, hvorfor dette ikke skulle virke:

<html>
<head>
<title>XML test</title>
<script>
function abn(frm) {
xmlStreng = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n<gruppe>\n<nr1>" + frm.nr1.value + "</nr1>\n<nr2>" + frm.nr2.value + "</nr2>\n</gruppe>";
alert(xmlStreng); //Bare en test
nytVindue = window.open("about:blank", "nytVin", "width=300,height=300,top=200,left=200");
nytVindue.document.open("text/xml", "replace");
nytVindue.document.write(xmlStreng);
nytVindue.document.close();
}
</script>
</head>
<body>
<h1>XML test</h1>
<form>
Skriv indholdet af nr1: <input type="text" value="def1" name="nr1"><br>
Skriv indholdet af nr2: <input type="text" value="def2" name="nr2"><br>
<input type="button" value="Åbn XML-vindue!" onClick="abn(this.form);">
</form>
</body>
</html>
Avatar billede Slettet bruger
09. juni 2002 - 22:10 #15
document.write(escape(xmlStreng)); // That's it...

/CS
Avatar billede Slettet bruger
09. juni 2002 - 22:11 #16
Ved nærmere eftertanke, prøv:

document.write(xmlStreng.replace(/</g, "&lt;"));

/CS
Avatar billede hangaard Nybegynder
10. juni 2002 - 11:04 #17
Nå, det skulle jeg ikke ha' gjort. Jeg ville bare gi' Jer point for arbejdsindsatsen, men vidste ikke at I så ikke længere kan svare på indlægget.

Det sidste svar fra greystate er det som kommer nærmest den løsning jeg søger, men det er ikke helt som jeg vil ha' det.

Jeg vil ha' det samme output i min browser som hvis jeg havde XML'et i en xml-fil ogsmed den over i en browser. Altså at tags'ene er farvekodede og indrykkede. Så det som det hele gælder om, er at få browseren til at "tro" at det er en XML-fil den skal vise.

Mvh.
Allan
Avatar billede medions Nybegynder
10. juni 2002 - 11:31 #18
Thx 4 Poinz
//>Rune
Avatar billede Slettet bruger
10. juni 2002 - 13:24 #19
Så skal du nok transformere XML dokumentet vha. IE's indbyggede XSL-stylesheet. Problemet er at du kun kan gøre det med en browser der kan det... pt. er IE vist den eneste der kan det (måske kan Mozilla 1.0). MEDMINDRE du benytter noget Server-Side (ASP/PHP).

IE's indbyggede stylesheet kan du fange på adressen: res://msxml.dll/defaultss.xsl (cut'n'paste til adressebar'en i IE, naturligvis) - så bliver det vist vha. sig selv !!!

/CS
Avatar billede Slettet bruger
10. juni 2002 - 15:36 #20
Nej, nej, der skal hverken bruges XSL, escape() eller noget i den stil!
Vi skal bare have overbevist browseren om, at det, vi giver den, skal vises som en XML-fil! Og det er sværere end som så.
Avatar billede Slettet bruger
10. juni 2002 - 15:46 #21
Ja det er fint - men hvis man vil have at den viser det "ligesom" IE gør, så må man enten sikre sig at folk bruger IE og derefter give den en ContentType-header "text/xml", eller benytte sig af serverside-tricket.

/CS
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