[ Príspevkov: 10 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
XML subor a javascript

Registrovaný: 07.08.06
Prihlásený: 18.11.21
Príspevky: 947
Témy: 268 | 268
Bydlisko: Levice
NapísalOffline : 14.12.2009 2:32 | XML subor a javascript

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


Offline

Čestný člen
Čestný člen
XML subor a javascript

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34 | 34
Bydlisko: Brno
NapísalOffline : 14.12.2009 11:36 | XML subor a javascript

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.


Offline

Užívateľ
Užívateľ
XML subor a javascript

Registrovaný: 07.08.06
Prihlásený: 18.11.21
Príspevky: 947
Témy: 268 | 268
Bydlisko: Levice
Napísal autor témyOffline : 16.12.2009 12:48 | XML subor a javascript

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!


Offline

Čestný člen
Čestný člen
XML subor a javascript

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34 | 34
Bydlisko: Brno
NapísalOffline : 16.12.2009 13:39 | XML subor a javascript

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.


Offline

Užívateľ
Užívateľ
XML subor a javascript

Registrovaný: 07.08.06
Prihlásený: 18.11.21
Príspevky: 947
Témy: 268 | 268
Bydlisko: Levice
Napísal autor témyOffline : 16.12.2009 14:00 | XML subor a javascript

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?


Offline

Čestný člen
Čestný člen
XML subor a javascript

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34 | 34
Bydlisko: Brno
NapísalOffline : 19.12.2009 17:03 | XML subor a javascript

Zaujimave, teraz som si to skusil v IE8 aj v IE8 Compatibility View a vsetko funguje. Prosim odkaz na zivu ukazku.


Offline

Užívateľ
Užívateľ
XML subor a javascript

Registrovaný: 07.08.06
Prihlásený: 18.11.21
Príspevky: 947
Témy: 268 | 268
Bydlisko: Levice
Napísal autor témyOffline : 19.12.2009 17:28 | XML subor a javascript

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


Offline

Čestný člen
Čestný člen
XML subor a javascript

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34 | 34
Bydlisko: Brno
NapísalOffline : 19.12.2009 18:19 | XML subor a javascript

V prvom rade pracuj vzdy v standards mode. Daj na prvy riadok HTML kodu trebars
Kód:
<!doctype html>
Potom to mozeme rozoberat dalej.


Offline

Užívateľ
Užívateľ
XML subor a javascript

Registrovaný: 07.08.06
Prihlásený: 18.11.21
Príspevky: 947
Témy: 268 | 268
Bydlisko: Levice
Napísal autor témyOffline : 19.12.2009 18:51 | XML subor a javascript

jj, jasne.. ja som to len narychlo nahodil.. uz to tam je


Offline

Užívateľ
Užívateľ
XML subor a javascript

Registrovaný: 07.08.06
Prihlásený: 18.11.21
Príspevky: 947
Témy: 268 | 268
Bydlisko: Levice
Napísal autor témyOffline : 22.12.2009 11:36 | XML subor a javascript

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


 [ Príspevkov: 10 ] 


XML subor a javascript



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Ako parsovat xml súbor?

v Backend

1

521

19.02.2010 14:11

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

kontrola ci je subor xml

v Backend

14

1101

28.07.2009 10:40

jozef.rusnak

V tomto fóre nie sú ďalšie neprečítané témy.

javascript - otvorit subor a obnovovat ho

v Frontend

4

1070

16.09.2007 22:20

0rech

V tomto fóre nie sú ďalšie neprečítané témy.

Problém s .XML (Asi zakódovaný súbor)

v Frontend

0

399

26.02.2010 16:56

hasic1010

V tomto fóre nie sú ďalšie neprečítané témy.

ako ulozit externy XML subor na moj server

v Backend

13

886

14.01.2010 6:10

rooobertek

V tomto fóre nie sú ďalšie neprečítané témy.

Firefox : "AUS: Aktualizačný súbor XML sa nenašiel (404)"

v Windows

1

431

05.04.2009 13:26

yterbium

V tomto fóre nie sú ďalšie neprečítané témy.

Generovanie XML:Chybná analýza XML: žiadny prvok sa nenašiel

v Frontend

1

1002

16.12.2011 16:49

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

XML Schema => XML instance document

v Frontend

0

833

02.11.2009 17:46

sINN3r

V tomto fóre nie sú ďalšie neprečítané témy.

javascript wysiwyg v javascript popup

v Frontend

1

966

25.07.2009 19:29

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

C++ Hlavickovy subor vs Hlavickovy subor s CPP suborom (Alebo deklaracia a definicia tried v1 alebo 2och suboroch)

v Backend

5

716

19.06.2017 21:16

BX

V tomto fóre nie sú ďalšie neprečítané témy.

javascript

v Frontend

21

1208

06.03.2009 11:03

suchy

V tomto fóre nie sú ďalšie neprečítané témy.

javascript

v Sieťové programy

1

683

01.05.2009 15:28

Jaro

V tomto fóre nie sú ďalšie neprečítané témy.

javascript

v Frontend

1

1713

22.03.2006 19:29

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

xml

v Frontend

1

895

02.04.2009 13:38

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

PHP + javascript

v Backend

10

734

09.07.2008 20:17

rooobertek

V tomto fóre nie sú ďalšie neprečítané témy.

input - javascript

v Frontend

20

1083

15.11.2011 15:49

lukas15



© 2005 - 2026 PCforum, edited by JanoF