| | |
| Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
Autor | Správa |
---|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice |
Prosim vas o pomoc, uz sa s tym trapim dost dlho a neviem to spojazdnit.
Jedna sa o to, ze mam XML subor, z ktoreho chcem vytiahnut data, ale pomocou javascriptu.
Ciastocne mi to slo v IE, ale vo FF nie, ale neviem to dotiahnut do konca.
Tu je jednoduchy XML priklad: Kód: <film> <title>nazov</title> <episode_title>nazov2</episode_title> <episode_orig_title/>
<pic> <pic_link>http://www.picture.sk/182616_2.jpg</pic_link> </pic>
<attrib>nejaky text</attrib> <desc>text bla bla</desc>
<creators>
<creator> <person_id>23725</person_id> <name>blabla</name> </creator>
<creator> <person_id>246461</person_id> <name>blabla</name> </creator>
</creators> </film> a tu je script ktory mi nefunguje Kód: <script type="text/javascript"> function spracuj (xmlFile) { var xmlDoc; var moz = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined'); var ie = (typeof window.ActiveXObject != 'undefined'); if (moz) { xmlDoc = document.implementation.createDocument("", "", null) xmlDoc.onload = readXML; } else if (ie) { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; while(xmlDoc.readyState != 4) {}; } xmlDoc.load(xmlFile);
var xmlF = xmlDoc.getElementsByTagName("film");
alert (xmlF);
return
}</script>
Skusal som predtym aj napr. pomocou ChildNodes, ale ja to potrebujem vytiahnut podla tagov.
Title, pic, attrib atd.. to sa neopakuju, ale potom je tam creator a tam to potrebujem vytiahnut vsetko v cykle.
Pomocou php neni problem, to zvladam, ale pomocou javascriptu je to pre mna nieco nove. Pozeral som uz neviemkolko webov kde to popisuju, ale nedari sa mi to spojazdnit pre moju strukturu, a tento moj script dokonca ani nejde vo FF.
diky moc
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 14.12.2009 11:36 | |
|
Preco to robis zlozito? Pouzi XMLHttpRequest s tym, ze miesto responseText budes pracovat s responseXML, tak by si mal ziskat klasicky DOMDocument a v nom sa mozes hrabat kolko chces. Jediny prehliadac, ktory to nezvladne, je pokial viem Konqueror, ktory XML nepodporuje vobec.
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 16.12.2009 12:48 | |
|
takze uz som sa dopracoval k tomu, ze mi to funguje vo FF, ale v IE bude asi chyba v jednom riadku. Spracovanie XML funguje uz vo vsetkych browseroch, len v IE tam bude chyba uz s manipulaciou s tagmi.
Moj XML:
Kód: <data>
<film>
<title>Filmtitle</title> <title_orig>sometitle</title_orig> <episode_title/> <pic><pic_link>78160_2.jpg</pic_link></pic> <attrib>some attributes</attrib> <description>some description</description>
<creators> <creator> <person_id>25645</person_id> <name>John David Coles</name> </creator>
<creator> <person_id>206791</person_id> <name>Edward Ornelas</name> </creator>
</creators>
</film>
</data> A javascript /uvadzam cely script, ale problem bude len v poslednej casti: Kód: <script type="text/javascript" language="javascript"> var http_request = false; var rr=1; function makeRequest(url, parameters) { http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Cannot create XMLHTTP instance'); return false; } http_request.onreadystatechange = alertContents; http_request.open('GET', url + parameters, true); http_request.send(null); }
function alertContents() { if (http_request.readyState == 4) { if (http_request.status == 200) {
var root = http_request.responseXML.documentElement; var output = ""; output += "title-" + root.getElementsByTagName('title')[0].childNodes[0].nodeValue + "<br/>"; output += "img-" + root.getElementsByTagName('pic_link')[0].childNodes[0].nodeValue + "<br/>"; output += root.getElementsByTagName('description_200')[0].childNodes[0].nodeValue + "<br/>Creators: "; var creators = root.getElementsByTagName('name'); for(i=0; i<creators.length; i++) { output += root.getElementsByTagName('name')[i].childNodes[0].nodeValue; if(i != (creators.length - 1)) { output += ", "; } //not last one else { output += "."; } //last one, full stop. } document.write(output); } else { alert('There was a problem with the request.(Code: ' + http_request.status + ')'); } } } function do_xml() { makeRequest('php.xml', ''); }
</script>
<input type="button" name="button" value="GET XML" onclick="javascript:do_xml();"/>
Prosim vas o help ... velmi by mi pomohla kazda rada.
Vo FF mi to pekne vypise ten output subor, ale v IE sa nic nedeje, lebo je tam chyba asi v tomto riadku output += "title-" + root.getElementsByTagName('title')[0].childNodes[0].nodeValue + "<br/>"; lebo hlasi nieco s object NULL
A este jeden problem s tym je - ak spracuvam xml subor z mojho PC na localhoste, funguje to vo FF ok, ale akonahle dam externy XML subor, hlasi mi chybu There was a problem with the request.(Code:0)
Dakujem za akukolvek pomoc!
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 16.12.2009 13:39 | |
|
Viem o tom, ze IE ma v XML velky problem s DOMom, vela veci tam nefunguje. Ak sa to tyka aj responseXML (pravdepodobne ano), moze sa stat, ze childNodes nebude existovat. Vyskusaj si vypisat root.getElementsByTagName('title')[0].innerHTML, pokial to funguje, je chyba presne v tom.
Co sa tyka druheho problemu, subor, ktory requestujes, musi byt na tej istej domene a takisto nemozes requesty spustat z file://. Prekontroluj to.
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 16.12.2009 14:00 | |
|
hm, skusil som toto
alert (root.getElementsByTagName('title')[0].innerHTML);
vo FF mi vypisalo undefined, a v IE sa nedeje vobec nic..len dole v browseri opat ta ista chyba - 'null' ma hodnotu NULL alebo nie je objekt.
Ani alert okno nevyskoci v IE.
Co sa tyka requestu, ja potrebujem tahat z externeho XML suboru...
Pomocou PHP tak taham bez problemov, pomocou javascriptu to nejde?
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 19.12.2009 17:03 | |
|
Zaujimave, teraz som si to skusil v IE8 aj v IE8 Compatibility View a vsetko funguje. Prosim odkaz na zivu ukazku.
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 19.12.2009 17:28 | |
|
ono problem je , ze to XML sa stale meni. teda struktura ostava, ale niektore tagy niekedy mozu byt aj prazdne.
Neviem, teraz to nejde ani vo FF..
tu je ukazka http://www.inbazar.sk/test/skuska.php
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 19.12.2009 18:19 | |
|
V prvom rade pracuj vzdy v standards mode. Daj na prvy riadok HTML kodu trebars
Kód: <!doctype html> Potom to mozeme rozoberat dalej.
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 19.12.2009 18:51 | |
|
jj, jasne.. ja som to len narychlo nahodil.. uz to tam je
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 22.12.2009 11:36 | |
|
takze chyba bola pravdepodobne v kodovani xml suboru, pretoze tam boli rozne haky baky, ktore sa nedali naparsovat... ale uz som to cele vyriesil pomocou ajax load, kedze kazdopadne potrebujem manipulovat s externym xml. diky..vyriesene
|
|
| Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Ako parsovat xml súbor? v PHP, ASP | 1 | 443 | 19.02.2010 14:11 Ďuri | | kontrola ci je subor xml v PHP, ASP | 14 | 1019 | 28.07.2009 10:40 jozef.rusnak | | javascript - otvorit subor a obnovovat ho v JavaScript, VBScript, Ajax | 4 | 973 | 16.09.2007 22:20 0rech | | Problém s .XML (Asi zakódovaný súbor) v HTML, XHTML, XML, CSS | 0 | 322 | 26.02.2010 16:56 hasic1010 | | ako ulozit externy XML subor na moj server v PHP, ASP | 13 | 798 | 14.01.2010 6:10 rooobertek | | Firefox : "AUS: Aktualizačný súbor XML sa nenašiel (404)" v Operačné systémy Microsoft | 1 | 363 | 05.04.2009 13:26 yterbium | | Generovanie XML:Chybná analýza XML: žiadny prvok sa nenašiel v HTML, XHTML, XML, CSS | 1 | 882 | 16.12.2011 16:49 Ďuri | | XML Schema => XML instance document v HTML, XHTML, XML, CSS | 0 | 733 | 02.11.2009 17:46 sINN3r | | javascript wysiwyg v javascript popup v JavaScript, VBScript, Ajax | 1 | 849 | 25.07.2009 19:29 Ďuri | | C++ Hlavickovy subor vs Hlavickovy subor s CPP suborom (Alebo deklaracia a definicia tried v1 alebo 2och suboroch) v Assembler, C, C++, Pascal, Java | 5 | 611 | 19.06.2017 21:16 BX | | javascript v Sieťové a internetové programy | 1 | 587 | 01.05.2009 15:28 Jaro | | javascript v JavaScript, VBScript, Ajax | 1 | 1602 | 22.03.2006 19:29 JanoF | | javascript v HTML, XHTML, XML, CSS | 21 | 1105 | 06.03.2009 11:03 suchy | | xml v HTML, XHTML, XML, CSS | 1 | 777 | 02.04.2009 13:38 Tominator | | JavaScript aritmetika v JavaScript, VBScript, Ajax | 1 | 614 | 29.03.2016 15:11 killer | | MENU - JAVASCRIPT v JavaScript, VBScript, Ajax | 7 | 1305 | 01.03.2008 16:24 mage |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|