« 1 2 »
Autor Zpráva
meca
Profil
Zdravim,

asi to bude triviální, ale nevíte někdo, proč mi nefugnuje následující věc?

=== XML SOUBOR

<srovnani>
<la>Nokia 6800</la>
<dva>Nokia</dva>
<tri>5000 ,-</tri>
</srovnani>

=== JS

var xml = httpRequest.responseXML.getElementsByTagName('srovnani').firstChild.da ta;
--------------------

Tedy, tato verze mi nefunguje vůbec, ale ani když jsem zkoušel z toho XML dostat údaje jinými způsobi, končilo to neúspěchem; většinou "undefined"...

Avšak pokud dám:

var xml = httpRequest.responseTEXT;
alert(xml);

vyskočí mi ten XML soubor.

Děkuji mnohokrát.
Dero
Profil
Zkus toto (zapomínáš vybrat konkrétní prvek "srovnani", i když je jen jeden):

var xml = httpRequest.responseXML.getElementsByTagName('srovnani')[0].firstChild .data;
meca
Profil
Dero
Jo, dik, už mi to nehází chybu ;) Avšak stále mi to hází undefined :-/
Dero
Profil
meca: Myslím, že se snažíš vybrat obsah prvku. V tom případě použij raději:

.firstChild.nodeValue;
meca
Profil
[b]Dero[/b]
No, teď je to "null" :-/
Timy
Profil
meca
Hele a co se vlastně z toho XML snažíš dostat?
meca
Profil
Timy
No pro začátek třeba to "Nokia 6800" ... pak už se to nějak odvodí ;)
Timy
Profil
meca
var xml = httpRequest.responseXML.getElementsByTagName('la')[0].firstChild .data;

neprojde?
meca
Profil
Timy
I love you, my baby. I love you, my Timy! Prochází, dik ;)
meca
Profil
Timy
Hm, tak jinak. V Opeře to funguje, ale v IE a ve FF to očekává objekt, respektive nemá properaties :-(
Dero
Profil
var xml = httpRequest.responseXML.getElementsByTagName('srovnani')[0].childNodes [0].firstChild.nodeValue;

By mělo fungovat všude.
meca
Profil
Dero
Mě po**r velbloude. To funguje jenom v IE ;) Asi error in dar Matrix.
Dero
Profil
meca: Tak pak už Ti můžu poradit asi jen zkusit použít lastChild místo firstChild - a pokud ani to nepůjde, tak nám budeš muset ukázat ten kód naživo.
meca
Profil
Ha, mam další poznatek. V rámci kreativní nezdůvodněné činnosti mě napadlo dáti místo childNodes[0] childNodes[1]... A ejhle. Opera & FF: OK, IE KO ... :-/
Dero
Profil
meca: Prosím, mohl bys nám ukázat ten kód? Pravděpodobně děláš nějakou drobnost špatně nebo jsi prostě něco přehlédl. Bylo by lepší neimprovizovat, aby se to na Tebe ve výsledku nesesunulo.
los
Profil *
v IE a ve FF to očekává objekt, respektive nemá properaties
A ktorý objekt nemá vlastnosti? Hneď ten element srovnani (httpRequest.responseXML.getElementsByTagName('srovnani')[0])?

Je vôbec v IE nahraný responseXML (responseXML.documentElement != null)?
meca
Profil
Dero
Here you are:

function porovnani_vysledek () {
if (httpRequest.readyState == 4) {
if(httpRequest.status == 200) {
var xml = httpRequest.responseXML.getElementsByTagName('srovnani')[0].childNodes [1].lastChild.nodeValue;
alert("Pojed prďka:" + xml);
} else {
alert("Chyba pri nacitani stanky"+ httpRequest.status +":"+ httpRequest.statusText);
}
}
}

function porovnani() {
var url = '/zbozi/srovnani.php';

httpRequest.open("GET", url, true);
httpRequest.onreadystatechange= function () {porovnani_vysledek(); } ;
httpRequest.send(null);
}
Dero
Profil
meca: Spíš jsem myslel odkaz na stránku, kde je možno skript vidět v "akci". Abych si mohl ověřit, jestli se Ti opravdu vrací XML a hlavně v jakém formátu.
meca
Profil
Dero
Já si to myslel.. to bude trochu problém, zkusim to nějak po zprávách vypreparovat :))
meca
Profil
Dero
... http://www. elektrus.cz/bla/special.php
Chamurappi
Profil
Tipuji: problém bude v tom, že enter za značkou <srovnani> může být firstChild dotyčného elementu.
meca
Profil
Chamurappi
Ehm... Jenže co s tim? :-/
meca
Profil
Mně se chce brečet. Již jsem pochopil to od Chamurappiho a je pravdou, že odstraněním mezer jsme se někam dostali - už to funguje v IE i ve FF. Opera stále protestuje, že prý "Could not converd undefined or null to object" :-/
Dero
Profil
Tak už vážně nevím, zkus to takto obecně:

var xml = httpRequest.responseXML.getElementsByTagName('la')[0];
for (var i = 0; i < xml.childNodes.length; i++) {
if (xml.childNodes[i].nodeType == 3) {
xml = xml.childNodes[i].nodeValue;
break;
}
}
meca
Profil
Dero
Bohužel... Ale hele, ted mi tu někdo tvrdí, že getElementsByTagName Opera neumí. Je to možný?
Dero
Profil
Bohužel... Ale hele, ted mi tu někdo tvrdí, že getElementsByTagName Opera neumí. Je to možný?

Ne.
meca
Profil
Dero
Tak mi aspon potvrdi, že je to Chyba v Matrixu a taky ti to nefunguje, at se na to můžu s chladnou hlavou vykašlat... Pač už mě to štve :-/ Kdybych to tak nepotřeboval ;)
Dero
Profil
meca: Zkoušel jsem ten svůj poslední kód a funguje mi. Respektive není možné, aby nefungoval. Odzkoušej ho znovu.

var xml = httpRequest.responseXML.getElementsByTagName('item1')[0];
for (var i = 0; i < xml.childNodes.length; i++) {
if (xml.childNodes[i].nodeType == 3) {
xml = xml.childNodes[i].nodeValue;
break;
}
}

alert(xml);
meca
Profil
Dero
No v Opeře se mi to prostě nerozběhne...
Dero
Profil
No v Opeře se mi to prostě nerozběhne...

Mně ano: http://83.240.10.78/Testcase/meca/
« 1 2 »
Toto téma je uzamčeno. Odpověď nelze zaslat.