» »

getElementsByTagName ne dela v Chromu

getElementsByTagName ne dela v Chromu

mk818764 ::

Imam funkcijo ki mi spremeni string v XML
  function StringtoXML(text)
  {
        if (window.ActiveXObject)
			{
               var doc=new ActiveXObject('Microsoft.XMLDOM');
               doc.async='false';
               doc.loadXML(text);
            } 
			else 
			{
               var parser=new DOMParser();
               var doc=parser.parseFromString(text,'text/xml');
            }
             return doc;
    }  

nato kodo v JS

var myXML = StringtoXML(textXML);
var x = myXML.getElementsByTagName("data")[0].childNodes[1].firstChild.nodeValue;
alert(x);


Zadeva dela v IE in mo se pojavi alert z vsebino značke.
Žal pa ne dela v Chromu. V drugih broserjih nisem testiral.
Zakaj ne dela v Chromu?
XML fajl je ok.

hidetr ::

http://stackoverflow.com/questions/4625...

"ActiveXObject do not work outside of internet explorer."

problem ni v getElementsByTagName ampak v ActiveXObject('Microsoft.XMLDOM')

jaz bi se tega (activex) izogibal v čimvečji meri in raje kašno drugo rešitev, tle spodaj imaš link do helpfull članka:

http://marcgrabanski.com/articles/jquer...

win64 ::

Kaj pa če uporabiš kakšno knjižnico, ki poskrbijo za kompatibilnost.
Recimo jquery, dojo,...
Primer za jquery:
var x = $(textXML).find("data:first > *:nth-child(2) > *:nth-child(1)").text();

mk818764 ::

bom poskusil v ponedeljek. Hvala za idejo.

mk818764 ::

win64 je izjavil:

Kaj pa če uporabiš kakšno knjižnico, ki poskrbijo za kompatibilnost.
Recimo jquery, dojo,...
Primer za jquery:

var x = $(textXML).find("data:first > *:nth-child(2) > *:nth-child(1)").text();


zadeva ne deluje. Vrne "prazen alert".
Očitno preko xmla ne bom mogel prenest podatkov. S stringom pa bo dost rezanja pa iskanja kje je kaj. Škoda.

Gandalfar ::

mk818764 ::

predlagaš, da namesto xml-a kreiraram spletno stran, kjer pol dostopam do vrednosti preko divov? hm.....

Gandalfar ::

Ne ne, xml dokument nalozis v en dom object, pa poganjas jquery cez njega.

mk818764 ::

joj, kam pol pridem....
evo, ugotovitve do sedaj:
- naprej kreiram xml na strežniku(dom document, kjer ga preko php prenesem k uporabniku.
Ker php ne omogoča prenos xml, je edina rešitev, da vse to dam v string pa pol prenesem k uporabniku(echo), kjer ga spet spremenim nazaj v xml(domparser).
- zdaj bi moral ta xml spet spreminjat v drugo obliko, da bi lahko dostopal do posameznih vrednosti.

Men se zdi to neumno početje. Okoli riti v žep hodim.
Dajte mi kako bližnjico povedat, kako naj dobim vrednosti z strežnika(php) k uporabniku, brez teh "converterjev".

Gandalfar ::

> Ker php ne omogoča prenos xml, je edina rešitev, da vse to dam v string pa pol prenesem k uporabniku(echo), kjer ga spet spremenim nazaj v xml(domparser).

Seveda ga omogoca. Nastavi mime type na xml.

technolog ::

Mime type tukaj sploh ni pomemben. Ti rabiš samo string dobit preko ajaxa in napisat pravilen selektor.

mk818764, daj primer XML dokumenta in kaj bi rad v njem dobil/poiskal, pa ti pomagamo.

mk818764 ::

<?xml version="1.0" encoding="UTF-8"?>
<data> 
 <dobitek>0</dobitek> 
 <igreServer>C1,C3,D2,F6,G1,G2,G5</igreServer> 
 <stevec>10028</stevec> 
</data>


To je del xml dokumenta. Zdaj pa rabim posamezne vrednosti, da lahko pol dalje delam z njimi.Do teh ne pridem.

technolog ::

Ja men vse dela.

> var a = "<?xml version="1.0" encoding="UTF-8"?> <data>  <dobitek>0</dobitek>  <igreServer>C1,C3,D2,F6,G1,G2,G5</igreServer>  <stevec>10028</stevec> </data>";
> $(a).find('dobitek').text();
"0"
> $(a).find('igreServer').text();
"C1,C3,D2,F6,G1,G2,G5"
> $(a).find('igreServer').text().split(',');
["C1", "C3", "D2", "F6", "G1", "G2", "G5"]

Zgodovina sprememb…

mk818764 ::

Sedaj meni tudi. Hvala ti.
Samo mi ni jasno nekaj(nisem sel brat manual)...torej najde jquery vrednost glede na samo značko v stringu(pripravljen xml falj)?
Namreč deluje nad samim stringom, brez pretvorbe v xml.
Zanimivo. Moram si bolje pogledat ta jquery.

Hvala še 1x vsem.

win64 ::

Seveda pretvori v xml strukturo, drugače bi zelo težko kaj sparsal ven. Samo tebi ni treba bit pozoren na to.
jQuery ima različne selektorje. Če napišeš $(xml).find("a") ti bo našlo vse elemente z imenom značke "a".
Potem imaš še selektorje za css razrede in id-je(če je vhod html), potem imaš selektorje za atribute, pa za pozicijo v strukturi,...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

E-račun

Oddelek: Programiranje
217088 (3851) ivanhoe5x
»

javascript - gnezdenje - konkretno na mojem primeru

Oddelek: Programiranje
162444 (1892) geca
»

Izpis XML-ja z JS

Oddelek: Izdelava spletišč
81506 (1449) gnomee
»

java v javascript?

Oddelek: Programiranje
211988 (1691) boss-tech
»

[JavaScript][XML] Zapis v .xml fajl!

Oddelek: Programiranje
71786 (1687) rokpok

Več podobnih tem