9793 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous
Pour inclure un fichier JavaScript dans une page HTML, on utilise
<script src="..."></script>
.
Pour inclure une page de style CSS, cela se fait par
<link href="...">

Existe-t-il un mécanisme similaire pour inclure un fichier xml?
Jusqu'à présent, j'utilise soit AJAX, soit un include PHP. Je me demande s'il existe un autre moyen "statique".
Merci de vos conseils
Salut Papy Smiley smile

Quel serait le but de ce moyen ????

Un xml est en général une bibliothèque de références.
Il permet de stocker énormément de chose pour ensuite l'utiliser, en l'affichant avec une mise en forme, ou sans, car tous les browsers savent directement lire un fichier xml...

Donc que veux tu exactement faire ?

et ne sachant pas exactement as tu regardé du côté de embed ???
Merci de ta réponse
Ma question est toute bête: si on insère "à la main" ou par un include PHP le contenu d'un fichier xml dans un fichier HTML, on peut ensuite en exploiter le contenu par du JavaScript.
Par exemple dans cette page (qui met un peu de temps à se charger car elle fati référence à un utilitaire "musclé" en JavaScript) la description de la visite de la tombe du Pharaon Ramsès I est décrite dans une balise
<X3D id='osirisnet3Dtombtours'> 
que l'utilitaire en question interprète.
Cette balise est contenue dans le fichier http://tests.osirisnet.net/3d-tours/kv16/kv16.x3d
Pour pouvoir l'insérer dans la page, j'ai fait appel à un programme PHP qui se contente de générer la page et de faire un include dans la page.

Ma question est simplement: dans un cas aussi trivial, est il possible de ne pas passer par un programme PHP mais tout simplement de dire que l'on veut l'insérer telle quelle à cet endroit?
En cherchant sur d'autres sites, j'ai trouvé cet exemple
<xml id ="msg" src="example1.xml"></xml>

ce qui semble vouloir dire qu'en utilisant une syntaxe similaire à
<script type="text/javascript' src="example.js"></script>

on peut obtenir le résultat souhaité.
Je vais faire quelques essais.
Les Data Islands semblent bien toujours exister, mais il faut que la balise <xml> soit "en dur" dans la page HTML. Ce qui ne semble plus marcher, c'est une balise
<xml src="exemple.xml"></xml>

Modifié par PapyJP (19 Apr 2017 - 22:49)
Zelena a écrit :
Apparemment, la balise 'xml' ne fonctionne plus et c'est elle qui était utilisée pour les 'data islands' : https://msdn.microsoft.com/library/hh801224(v=vs.85).aspx

Bonjour Zelena et merci pour ta réponse
Qu'on appelle cela "Data Islands" ou non n'a pas d'importance. Je constate que la balise <xml> est supportée sans problème par les navigateurs courants du marché.
msdn a écrit :
Cela signifie que les îlots de données XML sont désormais analysés en tant qu’éléments HTML, comme dans les autres navigateurs.

Si je comprends bien la page tu tu cites, c'est la façon dont c'était traité par IE qui a changé. Cette balise est traitée comme une balise HTML normale, ce qui me convient parfaitement.
Le problème en fait, c'est de charger dynamiquement le contenu d'une balise (que ce soit<xml> ou autre chose) à partir d'un fichier. Cela devrait à mon sens être une fonction de base, sous la forme d'un attribut src="...", mais ce n'est pas le cas.
Zelena a écrit :

Mais, le lien que j'ai cité plus haut dit que l'on peut utiliser la balise 'object' et d'après cette page :
https://www.developpez.net/forums/d1119543/webmasters-developpement-web/javascript-ajax-typescript-dart/javascript/parser-xml-javascript/
on peut aussi utiliser 'iframe'...

Oui, effectivement, car <iframe> supporte l'attribut src="..." et <object> supporte l'attribut équivalent data="..." La raison pour laquelle ce n'est pas le même nom d'attribut doit être encore un héritage des temps obscurs!!
On peut également effectuer un chargement par AJAX, en asynchrone comme il se doit puisque le chargement synchrone est considéré comme hérétique.
Je vais réfléchir à tout cela et voir ce que je vais faire... probablement rien du tout, l'utilisation d'un include PHP n'est pas en soi trop gênant dans mon contexte.