Προς το περιεχόμενο

[solved]xml εντός html: αόρατο σε webkit based browsers


twiner

Προτεινόμενες αναρτήσεις

Δημοσ.

Χαίρετε.

 

Γνωρίζει κανείς πώς αναγκάζουμε 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>

Δημοσ.

Καλησπέρα. :-)

 

Τεστάρεις ανοίγοντας το .html σου από το δίσκο, έτσι; Νομίζω πως η υλοποίηση της XMLHttpRequest στον Chrome επιστρέφει σφάλμα όταν προσπαθείς να διαβάσεις από το τοπικό filesystem. Δεν έχεις πρόσβαση σε κάποιον web server, ώστε να ανεβάσεις εκεί τα αρχεία σου και να σου τα σερβίρει αυτός; Π.χ. Apache ή άλλον παρόμοιο τοπικά στημένο στο μηχάνημά σου;

 

Αν βαριέσαι να στήνεις server, σου προτείνω να φτιάξεις ένα δωρεάν account στο Dropbox και να ανεβάσεις τα αρχεία προς δοκιμή στον "public" folder που δημιουργεί, οπότε θα πάρεις και public HTTP link. Για quick 'n' dirty δοκιμές που δεν απαιτούν server-side scripting (π.χ. HTML+CSS+JS παίζει μια χαρά), είναι «ένα κι ένα» και το χρησιμοποιώ πολύ συχνά!

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...