Fonction document
Offre une façon de récupérer d'autres ressources XML depuis la feuille de style XSLT au-delà des données initiales fournies par le flux d'entrée.
node-set document(object, node-set?)
Notes
Les effets de la fonction document()
varient selon le type et le nombre d'arguments fournis.
Si un seul argument est fourni et correspond à une chaîne,
document()
traite la chaîne comme une URL et récupère le document sous la forme d'une collection de nœuds. Voir l'exemple 1 ci-dessous pour une illustration de code.Si, un seul argument est fourni et correspond à une collection de nœuds, chaque nœud de cette collection est traité comme une URL et la fonction retourne l'union de tous les documents référencés. Voir l'exemple 2 ci-dessous pour une illustration de code.
Si deux arguments sont fournis, le premier peut être une chaîne ou une collection de nœuds tandis que le second doit être une collection de nœuds. Le second argument, si fourni, permet d'indiquer l'URL de base à laquelle le contenu du premier argument se rapporte. Voir l'exemple 3 ci-dessous pour une illustration de code.
Si une chaîne vide est transmise à la fonction
document()
, le résultat est le XML source du document XSLT proprement dit, sauf si le second argument est donné (et non nul). Dans ce cas, l'URL du document correspond à l'URL de base du nœud contenu dans le deuxième élément.
Si un document XML est téléchargé depuis une page ASP à l'aide de la fonction document()
avec une URL absolue comme argument, la propriété ServerHTTPRequest
doit être définie sur true
dans l'objet DOM contenant la feuille de style XSLT avant le début de toute transformation, comme indiqué dans le fragment de code JScript suivant :
xsltDom.setProperty("ServerHTTPRequest", true);
En effet, MSXML utilise par défaut URLMON.dll pour la prise en charge du téléchargement de fichiers. Toutefois, ASP ne prend pas URLMON en charge. Par conséquent, vous devez définir cette propriété pour choisir WinHTTP.dll comme alternative pour les téléchargements.
Exemple 1
Dans cet exemple, la feuille de style XSLT (document.xsl) effectue les opérations suivantes :
Elle utilise la fonction
document()
pour télécharger deux documents XML (hrGroup.xml et myGroup.xml) auxquels le document XML source (document.xml) fait référence.Elle extrait les éléments
<group>
des documents téléchargés.Elle insère les éléments extraits dans le document XML résultant.
L'effet de la transformation réside dans la résolution des références dans document.xml. Si un chemin d'accès relatif permet de faire référence au document XML externe, l'URL de base est celle de la feuille de style XSLT.
Si la transformation est commencée par un script dans une page ASP (document.asp), la propriété ServerHTTPRequest
est définie sur true
. Ceci n'est pas nécessaire si la transformation est commencée dans JScript (document.js) et exécutée dans l'hôte de script Windows ou une page HTML. Dans ce cas, l'hôte de script Windows est utilisé.
Fichier XML (document.xml)
Fichier XML 1 référencé (hrGroup.xml)
Fichier XML 2 référencé (myGroup.xml)
Fichier XSLT (document.xsl)
Fichier ASP (document.asp)
Fichier JScript (document.js)
Essayez !
Copiez les exemples de code ci-dessus et collez-les dans les fichiers sur votre disque local.
Enregistrez les fichiers avec les noms et extensions fournis.
Créez un nouveau répertoire virtuel appelé hr sous le site Web par défaut de votre ordinateur local. Si vous utilisez un ordinateur distant comme serveur Web, remplacez localhost par le nom d'hôte du serveur Web dans la valeur de l'attribut
href
dans document.xml. Si vous utilisez un répertoire virtuel existant, remplacez hr dans le même attributhref
par n'importe quel alias du répertoire. Déplacez le fichier hrGroup.xml dans le répertoire devenu le répertoire virtuel du serveur Web.Ouvrez la page ASP à partir d'une fenêtre de navigateur Internet Explorer avec l'URL suivante :
https://localhost/hr/document.asp
Exécutez le fichier JScript à l'aide de la commande de l'hôte de script Windows suivante :
cscript document.js
Sortie
Voici les données en sortie du processeur ; un retrait a été ajouté pour plus de clarté.
Exemple 2
Cet exemple illustre les effets de l'utilisation d'une collection de nœuds comme argument pour la fonction document
.
Fichier XML (document1.xml)
Feuille de style XSLT (document1.xsl)
Essayez !
Téléchargez msxsl.exe à partir de msdn.microsoft.com si ce n'est déjà fait.
À l'invite de commande, entrez la commande suivante à partir du répertoire où vous avez enregistré document1.xml et document1.xsl :
msxsl document1.xml document1.xsl
Sortie
La sortie est similaire à la sortie produite dans l'exemple 1 ci-dessus.
Exemple 3
Cet exemple illustre les effets de l'utilisation de deux arguments lors de l'appel de la fonction document
. Le second argument, qui doit être une collection de nœuds, sert d'URL de base pour le premier argument. En cas d'absence du second argument, l'URL de base du premier constitue l'URL de base du fichier XSLT.
Feuille de style XSLT (document2.xsl)
Fichier XML 1 (b.xml)
Fichier XML 2 (subDir/a.xml)
Essayez !
Enregistrez document2.xsl et b.xml dans un répertoire de travail.
À l'invite de commande, entrez la commande suivante dans le répertoire de travail :
msxsl.exe a.xml document2.xsl
Sortie
<?xml version="1.0" encoding="UTF-8"?>
<root>
<!-- One Argument >
<a> one </a>
<a> two </a>
<a> three </a>
<!-- Two Arguments >
<a> I </a>
<a> II </a>
<a> III </a>
</root>