11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Je précise que je développe une application interne visible uniquement sous windows avec IE. Le but étant d'afficher les fichiers contenus dans des répertoires locals et donc sans serveur web (sans php Smiley sweatdrop ) : uniquement en javascript et en acceptant les ActiveX windows Smiley confused
Donc je génère un xml et je souhaite l'exploiter directement dans la page sans l'enregistrer...
la génération ne pose pas de problème j'obtient xmlDoc.xml
et je cherche à le lire dans une fonction du type:
litxml(xmlDoc.xml);
=>

function litxml(fichxml) {

	if (document.implementation && document.implementation.createDocument) {
		docXml = document.implementation.createDocument('', '', null);
		
	}
	else if (window.ActiveXObject){
		docXml = new ActiveXObject("Microsoft.XMLDOM");
		}
		
	docXml.load(fichxml);
//puis traitement du docXml...

la dernière ligne "docXml.load(fichxml);" marche très bien lorsque je charge un fichier xml externe mais je ne trouve pas la méthode pour charger le xml générer à l'intérieur de la page Smiley decu ... J'espère que c'est clair Smiley ravi
Quelqu'un a une idée Smiley smile
Merci

En cherchant je m'aperçoit qu'il y a aussi peut-être un problème du coté de la génération du code xml:

var pi;
        var folder = fs.getFolder(dirPath);
		
        var xmlDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
	pi = xmlDoc.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\"");
	xmlDoc.appendChild(pi);
//....	

et lorsque je vois le code généré j'ai :
<?xml version="1.0"?>
alors que je devrais avoir :
<?xml version="1.0" encoding="UTF-8"?>
Pourquoi?
Merci pour les lectures Smiley smile ... Dites-moi si je suis hors-sujet ou si c'est trop compliqué.
Modifié par xmlhub (14 Feb 2007 - 17:51)
c'est bon j'ai trouvé en cherchant la réponse à ma deuxième question que je n'ai toujours pas il faut faire:
docXml.loadXML(fichxml);
et non docXml.load(fichxml);

Merci à moi-même Smiley lol et a ceux qui ont lu mon post Smiley biggrin
à bientôt...
xmlhub a écrit :
Merci à moi-même Smiley lol et a ceux qui ont lu mon post Smiley biggrin
à bientôt...
MDR ! Smiley biggrin
Mais dis moi, il m'intéresse ton scrip...
Ça veut dire que tu peux générer du XML à la volée sans PHP ?

Je suis dans me même cas que toi Smiley decu sans serveur PHP et j'aimerai créer du RSS.
Si je ne m'abuse, ça peut être obtenu par l'XML non ?

Si tel est le cas, peux-tu m'apporter plus de précisions ?
Merci

ThiWeb
Je te passe le script mais je ne suis pas sûr que cela ne nécessite pas l'acivation des controle activeX windows qui seront systématiquement refusé par des internautes... Moi j'ai effectué une application locale.

function loadXML(fichxml){

// Routine de vérification si le navigateur gêre la méthode utilisée
	if (document.implementation && document.implementation.createDocument) {
		// déclaration pour Mozilla et FF
		docXml = document.implementation.createDocument('', '', null);
		
	}
	else if (window.ActiveXObject){
		// déclaration pour IE
		docXml = new ActiveXObject("Microsoft.XMLDOM");
		
	}
	else {
	
		alert('Votre navigateur ne saurait pas éxécuter ce script.');
	
	}
	
	docXml.load(fichxml);

var hcxml = docXml.getElementsByTagName('news');
nbrsld=hcxml.length;
for(var sd=0;sd<hcxml.length;sd++) {
	hehu=hcxml[sd];	
	heho=hehu.attributes.getNamedItem("texte").text;
		
	}
}


et pour le générer:

function ecrirexml(txt) {

var win=window.open("","_blank");
		win.document.write('<?xml version="1.0" encoding="UTF-8"?>\r');

		for ( ii = 1 ; ii <= dersld ; ii++ ) {
		win.document.write('<news texte="'+txt[ii]+'"/>\r');		
		}
win.document.write('</news>');

	
	}

et après il y a possibilité de l'enregistrer mais avec des controle activeX sinon affichage>source>enregistrer sous... >***.xml
voilà avec un peu de retard je suis pas sûr que ça te convienne.
a écrit :

xmlhub a écrit
Le but étant d'afficher les fichiers contenus dans des répertoires locals et donc sans serveur web


... il y a toujours un serveur quelque part pour servir les données à la requête d'un client et dans ton cas l'objet ActiveObject fait la liaison avec ton 'localhost'

Ps : pourquoi faire une application 'restrictive' ( je cite : uniquement sous windows avec IE)
c'est vraiment une application métier destinée à une population qui est déjà obligée d'utiliser windows et internet explorer... (la honte mais c'est indépendant de ma volonté bon c'est sûr j'enfonce le clou Smiley confused ). Il se peut qu'il ne soit pas connecté. D'autres m'ont dit de le faire en vb mais bon j'ai bien aimé cet exercice en js Smiley lol
Modifié par xmlhub (27 Feb 2007 - 19:25)