charge externe xml xslt 1.0 avec la fonction document (), mais passer l'url du document en tant que variable

Rapide vue d'ensemble du problème: Iam transformer un document xml avec xslt 1.0, en xml sont les nœuds qui ont des urls. Avec xsl 1.0 je peux obtenir ces valeurs de nœud, quand je reçois ces valeurs, j'ai besoin de les utiliser pour charger un autre fichier xml à partir de xslt, il fonctionne si je manuellement utilisation de ces valeurs de nœud avec la fonction document (), mais j'ai besoin de le faire automatiquement.

Chargement externe xml xslt est assez simple avec:

<xsl:copy-of select="document('URL_OF_XML')/node1/node2"/> 

et il fonctionne comme il se doit.

Mais si mon url externe xml est stocké dans une variable,comme:

<xsl:variable name="MY_VARIABLE">
    <xsl:value-of select="some_node_containing_url"/>
</xsl:variable> 

<xsl:copy-of select="document('HOW_TO_USE_VARIBALE_VALUE_HERE') />

J'ai essayé:

<xsl:copy-of select="document($MY_VARIABLE)" /> -> works after see UPDATE 2 below

<xsl:copy-of select="document('$MY_VARIABLE')" /> nothing happend

<xsl:copy-of select="document({$MY_VARIABLE})" /> nothing happend, ofc {} are for attributes

<xsl:copy-of select="document('<xsl:value-of select="MY_VARIABLE"/>')" /> we cant use "<" ">" in document function

Je vais peut-être le mauvais chemin, et toute aide serait appréciée, ty à l'avance

Mise à JOUR 1 -œuvres:
A obtenu le travail à l'aide de concat et l'ajout d'une chaîne vide à ma variable comme:

<xsl:copy-of select="document(concat('',$MY_VARIABLE))"/>

Mise à JOUR 2 -œuvres:
Suivant @G. Ken Holman suggestion, je redecalared ma variable à partir de:

<xsl:variable name="MY_VARIABLE">
        <xsl:value-of select="some_node_containing_url"/>
</xsl:variable> 

à:

<xsl:variable name="MY_VARIABLE" select="some_node" />

et il suffit d'appeler mon exemplaire de:

<xsl:copy-of select="document($MY_VARIABLE)"/>

et tous les travaux. Merci pour l'aide et les suggestions!
CONCLUSION: le seul problème était ma déclaration de variable, maintenant la fonction document() accepte tous les appels à $MY_VARIABLE, pas de concat nécessaire, mais fonctionne aussi , et de la chaîne($MY_VARIABLE) fonctionne après redeclaration. Merci à tous pour leur temps une aide!

  • J'aurais pensé que la première est un travail, mais s'il vous plaît donner à ceci un essai: document(string($MY_VARIABLE)).
  • Ty pour la suggestion, après je redéclarée ma variable,tout fonctionne, également à l'aide de votre solution. ty nouveau
InformationsquelleAutor user2732475 | 2013-08-30