Autor Zpráva
Stewe
Profil *
Ahoj mám kod který mi převádí XML soubor do jednoduché tabulky. Problém je v tom že funguje jen v Firefox, ostatní prohlížeče nic.

Prosím o kontrolu a radu, nemůžu přijít na to čím to je.

<html>
<head>
<style>
table, th, td {
    border: 1px solid black;
    border-collapse:collapse;
}
th, td {
    padding: 5px;
}
</style>
</head>
<body>

<script>
xmlhttp=new XMLHttpRequest()
xmlhttp.open("GET","XML.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 

document.write("<table><tr><th>NAZEV</th><th>CISLO_VYKRESU</th></tr>");
var x=xmlDoc.getElementsByTagName("FINÁLY_x0020_PŘEHLED1");
for (i=0;i<x.length;i++)
  { 
  document.write("<tr><td>");
  document.write(x[i].getElementsByTagName("NAZEV")[0].childNodes[0].nodeValue);
  document.write("</td><td>");
  document.write(x[i].getElementsByTagName("CISLO_VYKRESU")[0].childNodes[0].nodeValue);
  document.write("</td></tr>");
  }
document.write("</table>");
</script>

</body>
</html>

Tady je XML

<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" generated="2015-05-15T12:15:57">
<FINÁLY_x0020_PŘEHLED1>
<NAZEV>RADIO GRUNDIG DRA-171 MONT</NAZEV>
<FORMAT>2</FORMAT>
<CISLO_VYKRESU>B4022</CISLO_VYKRESU>
<TYP_STROJE>DRA-171</TYP_STROJE>
<SERIE>1911-01-01T00:00:00</SERIE>
<POZNAMKA_KONSTRUKCE>NENAKRESLENO</POZNAMKA_KONSTRUKCE>
<DRUH>F</DRUH>
<AKTUALNOST>A</AKTUALNOST>
</FINÁLY_x0020_PŘEHLED1>
</dataroot>

Děkuji moc za rady a postřehy


Tak jsem přišel na to že nemám zaplou funkci Access-Control-Allow-Origin: *

Má být v head webu ale nevím jak ji tam dát :(
Moderátor Chamurappi: Titulek upraven z původního „xml na tabulku“ podle návrhu.
Keeehi
Profil
To musí posílat ten server který posílá to XML. To je server nad kterým máš kontrolu?
Chamurappi
Profil
Reaguji na Stewe:
že nemám zaplou funkci Access-Control-Allow-Origin
A ty taháš to XML z jiné domény, než na jaké je stránka? Kód v prvním příspěvku to nenaznačuje. Pokud je na stejné doméně, žádnou hlavičku nepotřebuješ.

Problém je v tom že funguje jen v Firefox
Zkusil jsem si z tvých kódů sestavit vlastní ukázku a funguje mi všude, pokud je stránka uložená ve správném kódování (v tom, které deklaruje). Pokud kódování nedeklaruji, záleží na prohlížeči, co si zvolí jako výchozí… a pak v kódu getElementsByTagName("FINÁLY_x0020_PŘEHLED1") můžou být nesmysly místo znaků s diakritikou, což pochopitelně způsobí nenalezení elementů.
Stewe
Profil *
Nemám to na HTTP serveru ale jen na síti. Takže to otevírám přímo v souborovém systému a pak už to nefunguje jak má. Protože adresa souboru není jen xml.xml ale změní se na 192.168.1.100/xml.xml a ačkoliv je to ve stejném místě, bere se to jako externí zdroj :(


To že mi nenachází soubor jsem poznal v Chrome kde mi to zobrazuje dev konzole.
Keeehi
Profil
Stewe:
Protože adresa souboru není jen xml.xml ale změní se na 192.168.1.100/xml.xml
A v adresním řádku máš co? Taky 192.168.1.100? Nevím přesně jak fungují IP adresy pro prohlížeče ale řekl bych, že stejně. Ale pokud by to dělalo problémy tak si vždycky můžeš v souboru hosty vytvořit nějakou doménu a namalovat ji na tu danou IP a pak jen používat tu doménu.
Stewe
Profil *
Tady je screen.

http://s7.postimg.org/sgw7a13u3/chyba.jpg


Je to brané jako cross origin zdroj, ikdyž je ve stejném místě :/
Jediná mozzila má tuto funkci povolenou takže není problém.

Samozřejmě by se to vyřešilo nahostováním nějakého malého http serveru ale na to nemám pc který by běžel stále, síťový disk ale stále běží.


Tady není IP protože disk je připojený v OS jako Z. Jinak bych zadal ručně IP a byla by v adresním řádku IP.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: