PDA

Visualizza la versione completa : XML Parse su Chrome e Firefox


tonyhhkx
22-05-2013, 15:32
Salve ragazzi,


sto leggendo un mio xml con queste righe di codice:



var xmlDoc = $.parseXML(tmp);
$(xmlDoc).find("Segments").each(function () {
[...]

nel ciclo entra tranquillamente con InternetExplorer, ma con chrome e firefox non entra!

Ho letto in giro alcuni che hanno avuto lo stesso problema ma sono riuscito a capirci poco.

Cosa ne pensate?

Vi ringrazio in anticipo.

Tony

carlomarx
22-05-2013, 20:35
Non conosco quella libreria. Ti scrivo solo per suggerirti che forse ti conviene cambiare approccio... https://developer.mozilla.org/en-US/docs/JXON :ciauz:

tonyhhkx
22-05-2013, 20:42
Grazie mille per la risposta :)

fare il parse mi comodissimo, funziona bene ed semplice.
C' solo il problema che funziona sono con IE.

Ci dev'essere qualche soluzione :(
:afraid:

Marcolino's
22-05-2013, 21:36
S, usare il javascript nativo e non le librerie, leggiti la documentazione a iniziare da qui: https://developer.mozilla.org/en-US/docs/Parsing_and_serializing_XML o su www.html.it :D

Vindav
22-05-2013, 21:55
usare il javascript nativo e non le librerie


:confused: oramai la maggior parte dei framework js sono cross browser

Marcolino's
22-05-2013, 22:34
Originariamente inviato da Vindav
:confused: oramai la maggior parte dei framework js sono cross browser S ma non impari nulla del linguaggio che sta alla base.

carlomarx
23-05-2013, 02:13
Originariamente inviato da Marcolino's
S, usare il javascript nativo e non le librerie, leggiti la documentazione a iniziare da qui: https://developer.mozilla.org/en-US/docs/Parsing_and_serializing_XML o su www.html.it :D
Ahahah giusto! Anche perch quella pagina su MDN (Parsing and serializing XML (https://developer.mozilla.org/en-US/docs/Parsing_and_serializing_XML)) l'avevo pure scritta io!!! :old: ;)

tonyhhkx
23-05-2013, 08:47
grazie delle risposte ragazzi :)

E' vero non si impara nulla, arriveremo un giorno che i programmatori non scriveranno piu' una riga di codice, e quando ci sara' un problema e bisogna mettere mani, non sapremo come e non risolveremo piu' i nostri problemi XD

Provo un altro approccio dal link che mi hai postato... vediamo se va :)

Grazie mille :D

EDIT:
Ragazzi ricevo questo errore se provo l'esempio:


Microsoft JScript runtime error: 'DOMParser' is undefined

Non trova questo metodo.

Devo aggiungere qualche using particolare nell'html?

EDIT:

l'errore lo da solo con IE.

Deve funzionare su tutto.
Con il mio approccio funziona solo su IE, con quest'altro (solo il metodo, non ho provato a vedere se puo servirmi per quello che devo fare) non funziona su IE.

Credo che bisogna abilitare un componente aggiuntivo su IE, ma non posso obbligare tutti i clienti dicendo: se non funziona nulla fate click fate questo e altro XD

Consigli? :)

tonyhhkx
23-05-2013, 08:59
tralasciando per una attimo questo problema (al massimo metto un try catch che se va in errore fa uno o l'altro...)

Ho creato l'oggetto:


var oDOM = oParser.parseFromString(sMyString, "text/xml");

Dove in sMyString e' presente l'XML.
Provano a fare il nodeName riesco a prendere il valore del nodo:


alert(oDOM.documentElement.nodeName);

Ora che in oDOM ho l'xml come faccio a leggere i dati al suo interno nel ciclo each?

Vi mostro il mio ciclo funzionante con l'approccio che funziona solo su IE.


var xmlDoc = $.parseXML(tmp);
$(xmlDoc).find("Segment").each(function () {
var startDate = $(this).find("StartDate")[0].text;
var endDate = $(this).find("EndDate")[0].text;


come devo modificare queste righe di codice affinche' nelle variabili startDate e endDate riesca prender ei valori dell'xml?

Grazie in anticipo :)

tonyhhkx
23-05-2013, 11:00
Scusa i messaggi di fila, ma faccio tentativi e posto i miei step cosi da capire meglio insieme la miglior soluzione e capire il problema.

Dopo aver creato l'oggetto non sto riuscendo a fare un ciclo per leggermi tutti i valori dell'xml.

Ho provato con:


var oDOM = oParser.parseFromString(sMyString, "text/xml");
alert(oDOM.getAttributeValue('StartDate')[0]);


ma niente da fare e' UNDEFINED.

Questo e' il mio XML:


<Segments> <Segment> <StartDate>2010-01-04T00:00:00</StartDate> <EndDate>2010-01-10T00:00:00</EndDate> <Description>Some description</Description> </Segment> <Segment> <StartDate>2010-01-15T00:00:00</StartDate> <EndDate>2010-01-30T00:00:00</EndDate> <Description>Some description</Description> </Segment> <Segment> <StartDate>2010-02-10T00:00:00</StartDate> <EndDate>2010-02-20T00:00:00</EndDate> <Description>Some description</Description> </Segment> </Segments>

Devo poter prendere in un ciclo tutti i StarDate.

Grazie in anticipo

Loading