Avatar billede nzc Nybegynder
26. marts 2004 - 20:34 Der er 24 kommentarer og
2 løsninger

Åben XmlDocument i Explorer

Hej!

Jeg har et XmlDocument som jeg har lavet lidt XSLT og jeg vil nu gerne ha dokumentet vist i en browser :) Det er jo nemt nok at åbne en xml-fil i en browser (d-klik :D ) men det jeg gerne vil er at mit objekt af type XmlDocument vises i en browser når jeg trykker på en knap. I XmlDocumentet er der et link til mit XSLT således dokumentet præsenteres som jeg gerne vil.

For lige at pensle det ud: Jeg har et XmlDocument som jeg gerne vil ha vist i en browser. Hvordan dælens gør jeg lige det? Ka man sende dokumentet med som param til explorer eller noget ?

På forhånd tak :)

NZC
Avatar billede burningice Nybegynder
26. marts 2004 - 21:18 #1
hvad snakker vi om her.. asp.net eller winforms?!

hvis det første er tilfældet kan du skrive den ud til din Response.Stream ved hjælp af XmlDocument.Save(Stream)-metoden
Avatar billede nzc Nybegynder
26. marts 2004 - 21:22 #2
sorry glemte da at fortælle at det er en winapp
Avatar billede burningice Nybegynder
26. marts 2004 - 21:25 #3
hm.. ja, det var straks værre... well, ved godt det ikke er en særlig pæn løsning, men du bliver nok nød til at skrive dit XmlDocument ned på harddisken og åbne det i iexploreren den vej rundt
Avatar billede nzc Nybegynder
26. marts 2004 - 21:28 #4
ye det er oz den løsning jeg bruger nu men ville bare gerne undgå det :)
Avatar billede arne_v Ekspert
26. marts 2004 - 21:33 #5
Prøv og læs denne artikel:
  http://blog.monstuff.com/archives/000052.html
Avatar billede arne_v Ekspert
26. marts 2004 - 21:37 #6
Avatar billede arne_v Ekspert
26. marts 2004 - 21:38 #7
Jeg har aldrig brugt det.

Jeg ved ikke om det også understøtter XML.

Men du kan sikert bruge en del timer på at forsøge at få det til at virke.
Avatar billede burningice Nybegynder
26. marts 2004 - 21:41 #8
så det bliver noget i retningen af

StringWriter tw = new StringWriter();
xmlDoc.Save(tw);

body.innerHTML = tw.ToString();
Avatar billede nzc Nybegynder
26. marts 2004 - 21:46 #9
body.innerHTML = xmldoc.OuterXml;

er vel det bedre end det med en StringWriter?
Avatar billede burningice Nybegynder
26. marts 2004 - 21:52 #10
giver dig hele string-representationen af dit XmlDocument?! kan godt være det bare er mig der ikke læser dokumentationen ordenligt så
Avatar billede nzc Nybegynder
26. marts 2004 - 22:11 #11
ye outerxml giver mig en stringrepræsentation af xml dokumentet :) Sidder lige og bakser med de to links arne_v postede men de vil ikke rigtig som jeg vil. Den her løsning

private void button1_Click(object sender, System.EventArgs e)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(@"C:\Inetpub\wwwroot\Log.xml");

            IHTMLDocument2 htmlDocument = (IHTMLDocument2)axWebBrowser1.Document;
            IHTMLElement body = (IHTMLElement)htmlDocument.body;

            body.innerHTML = doc.OuterXml;
        }

gir

System.NullReferenceException: Object reference not set to an instance of an object.
  at browsertest.Form1.button1_Click(Object sender, EventArgs e) in c:\documents and settings\anders\my documents\visual studio projects\browsertest\form1.cs:line 109

hvor linie 109 er IHTMLElement body = (IHTMLElement)htmlDocument.body;

den samme fejl får jeg ved

object boxDoc = axWebBrowser1.Document;
IHTMLDocument2 hDoc = (mshtml.IHTMLDocument2)boxDoc;
hDoc.body.innerHTML = doc.OuterXml;
Avatar billede nzc Nybegynder
26. marts 2004 - 22:24 #12
Det samme gælder

object[] psa = {doc.OuterXml};
IHTMLDocument2 hDoc2 = (IHTMLDocument2)axWebBrowser1.Document;
hDoc2.write(psa);
Avatar billede burningice Nybegynder
26. marts 2004 - 22:29 #13
har du husket at lave dine interop's?
Avatar billede nzc Nybegynder
26. marts 2004 - 22:33 #14
hva mener du ?
Avatar billede nzc Nybegynder
26. marts 2004 - 22:34 #15
jeg har tilføjeg reference til de enkelte ting og using mshtml hvis det er det du mener :)
Avatar billede nzc Nybegynder
27. marts 2004 - 15:00 #16
cyberfessor vågn op :)
Avatar billede nzc Nybegynder
27. marts 2004 - 17:29 #17
yeah har endelig fået XmlDocumentet ind i browseren :) MEN den vil sq ikke bruge mit XSLT :( Har angivet den absolutte sti til XSL-filen men det virker bare ikke :(
Avatar billede arne_v Ekspert
27. marts 2004 - 18:15 #18
Hvorfor vil du lade browseren lave transformeringen ?

Det kan du vel lige så godt lade din app gøre !
Avatar billede nzc Nybegynder
27. marts 2004 - 18:34 #19
hvordan det ?!?!
Avatar billede arne_v Ekspert
27. marts 2004 - 18:36 #20
Din app kan via .NET kald lave XML+XSL->XML
Avatar billede arne_v Ekspert
27. marts 2004 - 18:37 #21
Prøv og læs docs på System.Xml.Xsl.XslTransform klassen
Avatar billede nzc Nybegynder
28. marts 2004 - 14:38 #22
weeee :)

jeg bruger følgende metode

XslTransform xslt = new XslTransform();

xslt.Load(@"C:\Inetpub\wwwroot\Untitled1.xsl");

string inetpath = Environment.GetFolderPath(System.Environment.SpecialFolder.InternetCache);
           
string temp = inetpath + "\\log.html";
xslt.Transform(@"C:\Inetpub\wwwroot\Log.xml",temp);   

og det virker bare :) Men jeg undrer mig over at Transform(string, string) er obsolete og at de skriver at "You should pass XmlResolver to Transform() method". Når metoden virker fint hvorfor så lave det anderledes?
Avatar billede arne_v Ekspert
28. marts 2004 - 16:24 #23
Det ser ud som at Microsoft har ombestemt sig lidt med hensyn til den metode.

:-)

Du kan bare kalde med null, hvis du ikke vil bruge den.
Avatar billede nzc Nybegynder
28. marts 2004 - 20:48 #24
nå men jeg ska jo ha delt lidt point ud :)

ville gerne hvis i kunne svare begge to :) Har nemlig brugt lidt af det cyberfessor har sagt og lidt af det arne_v har sagt :)
Avatar billede arne_v Ekspert
28. marts 2004 - 20:50 #25
svar
Avatar billede burningice Nybegynder
29. marts 2004 - 08:39 #26
tilbage til civilisationen... :)har lige været væk et stykke tid.

Glæder mig du har fået det til at virke.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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