Appliquer XSL à XML externe
J'utilise actuellement:
<?xml-stylesheet type="text/xsl" href="XSL.xsl"?>
De lien XSL XML.
Si mon xml est ici: www.externaldomain.com/rss.xml (en Dehors de mon domaine) comment puis-je obtenir le code XSL lié à l'XML?
Puis-je point le XSL à un Fichier ou un Lien?
source d'informationauteur CLiown
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas réaliser cela avec "pure" xml+xslt(*). Certains de code externe devrez identifier le xml et xslt qui devrait transformer.
Puisque vous semblez être la transformation de XML, je vais deviner que vous faites cela dans le webbrowser.
Vous pouvez le faire à l'aide de javascript, comme démontré sur w3schools. Cependant, la croix-domaine restrictions continuent de s'appliquer si vous faites javascript demandes (AJAX/XHR): si le serveur d'origine n'est pas le approprié de la SCRO-têtes pour permettre à la croix-domaine de l'accès javascript, vous aurez besoin de proxy qui demande xml via votre propre serveur.
(*): Mad réponse utilise des références d'entité pour intégrer intelligemment externe xml dans un document contenant. C'est certainement la peine d'essayer, mais il faut être conscient que ce genre d'entité-fondé de l'inclusion a été utilisé dans plusieurs de divulgation d'informations des fuites, ce qui est pourquoi il est souvent pas activé dans l'analyseur xml (en particulier, cela ne devrait pas être en mesure de renverser la SCRO dans un navigateur). Vous aurez juste à essayer dans votre situation.
Vous pouvez créer un fichier XML local qui comprend le contenu du fichier XML le fichier XML à distance par le biais d'une entité de référence.
L'exemple ci-dessous va vous donner le contenu du fichier XML à distance à l'intérieur d'un wrapper de l'élément document.
Ensuite, vous pouvez inclure une feuille de style de l'instruction de traitement de votre fichier XML local.
Cependant, depuis le fichier local a un wrapper élément de document, vous devrez peut-être point à un "wrapper XSLT" qui utilise xsl:import pour importer l'original XSL.xsl et apply-templates de départ avec le contenu à l'intérieur de la wrapper élément.
Si vous tentez de lancer le XSLT à l'intérieur .NET, vous pouvez facilement utiliser la XslCompiledTransform classe .NET pour atteindre cet objectif.
Si vous essayez de l'exécuter sur la ligne de commande, il ya un tas d'outils que vous pouvez utiliser pour appliquer un fichier XSLT à un fichier XML - généralement celui qui est sur votre disque dur local.
Voir, par exemple, Oleg Tkachenko le site web de info sur NXSLT et cette autre XSLT outils, ou voir ce CodeProject article pour Windows shell extension pour appliquer une transformation XSLT à un fichier XML (sur votre disque dur local).
Espère que cela aide un peu.
Marc
Vous pouvez écrire un fichier xml local comme wrapper:
Et d'étendre votre feuille de style de sorte qu'il comprend l'emballage:
Je n'ai pas testé avec des fichiers XML sur http, mais il travaille avec des locaux des fichiers XML que je ne veux pas changer pour inclure un xml-stylesheet instruction de traitement. Il fonctionne mit Firefox, Opera et IE (7, je n'ai pas essayé d'autres versions)
Une solution:
Obtenez de l'externe XML dans un objet XMLDocument et ensuite insérer un nœud qui contient une déclaration de xsl. Inclure xsl peuvent être prises à partir de http://tipscow.com/how-to-include-xsl-in-xml/.