J'ai des problèmes avec le traitement XSL quand il y a des feuilles de style qui incluent relativement d'autres feuilles de style. (Les fichiers XML peuvent ne pas être pertinents, mais sont inclus pour être complets - le code est en bas).NSXMLDocument objectByApplyingXSLT avec XSL Include
Compte tenu du fichier XML:
<?xml version="1.0" ?>
<famous-persons>
<persons category="medicine">
<person>
<firstname> Edward </firstname>
<name> Jenner </name>
</person>
</persons>
</famous-persons>
et le fichier XSL:
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:include href="included.xsl" />
</xsl:stylesheet>
faisant référence à cette feuille de style dans le même répertoire appelé included.xsl:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<html><head><title>Sorting example</title></head><body>
</body></html>
</xsl:template>
</xsl:stylesheet>
comment puis-je faire en sorte que le fragment de code suivant:
NSError *lError = nil;
NSXMLDocument *lDocument = [ [ NSXMLDocument alloc ] initWithContentsOfURL:
[ NSURL URLWithString: @"file:///pathto/data.xml" ]
options: 0
error: &lError ];
NSXMLDocument *lResult = [ lDocument objectByApplyingXSLTAtURL: [ NSURL URLWithString: @"file:///pathto/style.xsl" ]
arguments: nil
error: nil ];
ne me donne pas l'erreur:
I/O warning : failed to load external entity "included.xsl"
compilation error: element include
xsl:include : unable to load included.xsl
J'ai essayé toutes sortes d'options. Le chargement de documents XML avec NSXMLDocumentXInclude ne semble pas non plus utile. La spécification du chemin absolu vers le fichier XSL à inclure fonctionne parfaitement.
Y at-il un moyen de rendre le traitement XSL de sorte qu'une feuille de style puisse inclure une autre feuille de style dans son chemin local?