2009-10-19 11 views
2

Je suis en train d'essayer cela et ne peut pas sembler le faire fonctionner. Est-ce que quelqu'un peut jeter un coup d'oeil et voir si je manque quelque chose d'évident.Sourcing docs xml multiples de single xslt

Je référence le doc supplémentaire comme ceci dans test.xsl.

<xsl:value-of select="document('/customercare/library/test/test1.xml')/resources/resource/name" /> 

Ceci est le xml test1.xml.

<resources> 
    <resource> 
     <name>configuration</name> 
    </resource> 
</resources> 

Ceci est l'appel de fragment dans ma page ASP index.aspx. Je suis l'architecte d'un site qui aura plusieurs centaines de produits. Je voudrais avoir un document xml qui contient des détails de haut niveau tels que le nom et le chemin de l'image pour chaque produit qui peut être obtenu de partout, cela aurait un schéma unique. Ensuite, ayez un autre document xml avec un schéma unique qui contient des éléments spécifiques à une sous-section comme un support qui contiendrait des chemins de documents, des numéros de téléphone, etc.

Ma question est comment puis-je obtenir les deux documents XML à partir d'un seul fichier xslt? ?

Merci

Répondre

3

Jetez un oeil sur le document () fonction.

Cette article fournit un aperçu de son utilisation.

+1

Aussi ici: http://www.w3schools.com/xsl/func_document.asp – Murph

0

Bien sûr, vous pouvez utiliser la fonction xsl: document() deux fois dans la feuille de style. Mais pourquoi voulez-vous cela comme ça? Il semble n'y avoir aucune raison évidente de le faire.

Les autres options sont la fonction fn: doc() de XPath ou l'élément xsl: document.

1

Lorsque j'utilise des documents XML de la manière que vous décrivez (à savoir des tables de consultation à être référencés au cours de la transformation), je les charge généralement dans les variables au sommet de ma transformation:

<xsl:stylesheet...> 
    <xsl:variable name='resources' select=document('resources.xml')/> 
    <xsl:variable name='products' select="$resources/resources/products/product"/> 

Ensuite, Je peux rechercher des informations de ces variables là où c'est approprié, par exemple:

<xsl:template match='product'> 
    <tr> 
     <td> 
     <xsl:value-of select='@id'/> 
     </td> 
     <td> 
     <xsl:value-of select='@description'/> 
     <td> 
     <td> 
     <img src='{$products[@id=current()/@id]/image}'/> 
     </td> 
    </tr> 
<xsl:template>