[EDIT]Ho sbagliato sezione
avrei dovuto postarlo in ActionScript[/EDIT]
Ragazzi ho un problema che non riesco a risolvere...
Ho uno filmato flash che mi legge i dati da un file xml e mi riporta i valori di alcuni nodi da sfruttare poi nel filmato stesso...
Il problema è che questo funziona correttamente per un certo file XML, mentre non da nessun risultato con un altro file XML, "apparentemente" con la stessa struttura.
Il file XML con cui funziona il codice
Il file XML con cui NON funziona il codice
L'unica differenza la si può notare per la presenza del parametro encoding="iso-8859-15" nel file funzionante, e se si guarda il codice html si nota la formattazione differente tra i 2 files...
Questo è il codice AS che uso nel filmato ( adattato da un codice reperito su internet ).. Non sono un grande esperto in materia per cui perdonate eventuali strafalcioni nel codice... ma almeno funziona!
codice:
proxyXML = "http://localhost/svx/proxy.php?url=";
// URL dell'XML remoto
XMLremoto = "http://localhost/svx/servers4.xml";
//XMLremoto = "http://localhost/servers.xml";
// aggiungo alla fine dateNumer() per eseguire sempre in refresh dell'XML
filexml = proxyXML+XMLremoto+"&rnd="+dateNumber();
ApriXML();
function ApriXML() {
serverID = "Ceridwen";
mioxml = new XML();
server = new Array();
relics = new Array();
mioxml.load(filexml);
mioxml.onLoad = ElaboraXML;
//mioxml.ignoreWhite = true
function ElaboraXML(success) {
if (mioxml.loaded) {
server = mioxml.firstChild.nextSibling.childNodes;
for (i=0; i<=server.length; i++) {
if (server[i].attributes.name == serverID) {
relic = (server[i].childNodes);
population = (relic.childNodes);
ServerName = (server[i].attributes.name);
}
}
ServerData();
RelicData();
KeepData();
CreaTabelle();
}
}
}
// Recupera info sul Server
function ServerData() {
// ---------------------------------------------------
for (k=0; k<=relic.length; k++) {
if (relic[k].nodeName == "population") {
population = (relic[k].childNodes.toString());
} else if (relic[k].nodeName == "status") {
serverstatus = (relic[k].childNodes.toString());
}
}
}
// Recupera info sulle Relic
function RelicData() {
// Array che contengono i Dati -----------------------
relicID = new Array();
owner = new Array();
RelicStatus = new Array();
level = new Array();
totalrp = new Array();
// ---------------------------------------------------
for (k=0; k<=relic.length; k++) {
if (relic[k].nodeName == "relic") {
relicID = (relic[k].childNodes);
relicName = (relic[k].attributes.name);
for (j=0; j<=relicID.length; j++) {
if (relicID[j].nodeName == "owner") {
owner = (relicID[j].childNodes.toString());
_root.RelicStatus.push([relicName, owner]);
} else if (charlev[j].nodeName == "race") {
race = (charlev[j].childNodes.toString());
}
}
}
}
}
// Funzione che Crea i clip
// e li posiziona sullo stage del filmato
function CreaTabelle() {
// Parametri utilizzati per gestire lo scroll di barranav tramite il cursore di scrolling
thecounter = 0;
maxelements = KeepID.length-1;
//---------------------------------------------------------------------------------------
_root.loading = "";
for (i=0; i<relic.length; i++) {
_root.owner0.realmloading.attachMovie(relicstatus[0][1], "realmID", i);
_root.owner1.realmloading.attachMovie(relicstatus[1][1], "realmID", i);
_root.owner2.realmloading.attachMovie(relicstatus[2][1], "realmID", i);
_root.owner3.realmloading.attachMovie(relicstatus[3][1], "realmID", i);
_root.owner4.realmloading.attachMovie(relicstatus[4][1], "realmID", i);
_root.owner5.realmloading.attachMovie(relicstatus[5][1], "realmID", i);
}
}
Qualcuno sa dirmi perché con l'altro file non funziona??
Può essere colpa di quel parametro encoding o della differente formattazione??
Vorrei far presente che i file sono in remoto e quindi non modificabili... devo risolvere il problema nel codice non potendo modificare la sorgente XML...
Grazie in anticipo!