twiner Δημοσ. 10 Οκτωβρίου 2010 Δημοσ. 10 Οκτωβρίου 2010 Χαίρετε. Γνωρίζει κανείς πώς αναγκάζουμε webkit based browsers(π.χ. chrome) να εμφανίσουν περιεχόμενα xml αρχείου σε html; Ο παρακάτω κώδικας δουλεύει σε firefox και opera, αλλά δεν εμφανίζει τίποτα σε chrome. books.xml: > <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE BOOK [ <!ELEMENT BOOK (TITLE,LINK,AUTHOR)> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT LINK (#PCDATA)> <!ELEMENT AUTHOR (#PCDATA)> ]> <BOOKS> <BOOK> <TITLE>πρώτος τίτλος</TITLE> <LINK>"www.google.com"</LINK> <AUTHOR>πρώτος συγγραφέας</AUTHOR> </BOOK> <BOOK> <TITLE>δεύτερος τίτλος</TITLE> <LINK>"www.yahoo.com"</LINK> <AUTHOR>δεύτερος συγγραφέας</AUTHOR> </BOOK> </BOOKS> html+javascript: > <html> <head> <title>books</title> <meta http-equiv="Content-Type" content="text/html"; charset="utf-8"> </head> <body> <script type="text/javascript"> var error = ""; var file = "books.xml"; try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.load(file); } catch(e) { try //Firefox, Mozilla, Opera, etc. { xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async=false; xmlDoc.load(file); } catch(e) { try //Google Chrome { var xmlhttp = new window.XMLHttpRequest(); xmlhttp.open("GET",file,false); xmlhttp.send(null); xmlDoc = xmlhttp.responseXML.documentElement; } catch(e) { error=e.message; } } } document.write("<ul>"); var x=xmlDoc.getElementsByTagName("BOOK"); for (i=0;i<x.length;i++) { document.write("<li>"); document.write("<a href="); document.write(x[i].getElementsByTagName("LINK")[0].childNodes[0].nodeValue); document.write(">"); document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue); document.write("</a>"); document.write("<br>"); document.write(x[i].getElementsByTagName("AUTHOR")[0].childNodes[0].nodeValue); document.write("</li>"); } document.write("</ul>"); </script> </body> </html>
parsifal Δημοσ. 11 Οκτωβρίου 2010 Δημοσ. 11 Οκτωβρίου 2010 Καλησπέρα. Τεστάρεις ανοίγοντας το .html σου από το δίσκο, έτσι; Νομίζω πως η υλοποίηση της XMLHttpRequest στον Chrome επιστρέφει σφάλμα όταν προσπαθείς να διαβάσεις από το τοπικό filesystem. Δεν έχεις πρόσβαση σε κάποιον web server, ώστε να ανεβάσεις εκεί τα αρχεία σου και να σου τα σερβίρει αυτός; Π.χ. Apache ή άλλον παρόμοιο τοπικά στημένο στο μηχάνημά σου; Αν βαριέσαι να στήνεις server, σου προτείνω να φτιάξεις ένα δωρεάν account στο Dropbox και να ανεβάσεις τα αρχεία προς δοκιμή στον "public" folder που δημιουργεί, οπότε θα πάρεις και public HTTP link. Για quick 'n' dirty δοκιμές που δεν απαιτούν server-side scripting (π.χ. HTML+CSS+JS παίζει μια χαρά), είναι «ένα κι ένα» και το χρησιμοποιώ πολύ συχνά!
twiner Δημοσ. 11 Οκτωβρίου 2010 Μέλος Δημοσ. 11 Οκτωβρίου 2010 wow αυτό ήταν! ευχαριστώ πολύ Parsifal: σωστή η διάγνωση + η λύση. ευχαριστώ και για το tip.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.