1)
<xsl:variable name="pathId" select="Orders/Order[ORD_Num='$id/idNum']"/>
Vous dites: An Order
élément ayant au moins un ORD_Num
enfant avec une valeur de chaîne égale à '$id/idNum'
.
Remplacer par:
<xsl:variable name="pathId" select="Orders/Order[ORD_Num=$id]"/>
Parce que la valeur de chaîne de la variable $ id (un arbre résultat Fragment que vous définissez) est 0607V45621014F
.
Remarque: Il serait préférable que vous définissiez $ id comme une chaîne comme select="'0607V45621014F'"
. En outre, vous ne pouvez pas (dans XSLT 1.0) faire: [ORD_Num=$id/idNum]
car l'opérateur /
ne peut pas s'appliquer à un RTF.
2)
<xsl:variable name="XmlFile" select="YG.xml"/>
<xsl:value-of select="document($XmlFile)/aziende/azienda/ragione_sociale"/>
Ici, vous dites: Soit $ xmlFile un ensemble de noeuds avec tous YG.xml
éléments Childs du noeud contextuel, etc.
Remplacer (si vous voulez un document relatif uri YG.xml
)
<xsl:variable name="XmlFile" select="'YG.xml'"/>
note: cela ne Trought pas une erreur car document()
est très polyvalent (ce sont les quelques ceux qui t Ake un object
comme param)
3)
<xsl:variable name="tagName" select="aziende"/>
<xsl:value-of select="document($XmlFile)/$tagName/azienda/ragione_sociale"/>
Cela ne fonctionne pas parce que le droit expresion de /
doit être un chemin (XSLT 2.0 peut être une fonction aussi bien).
Remplacer par:
<xsl:variable name="tagName" select="document($XmlFile)/aziende"/>
<xsl:value-of select="$tagName/azienda/ragione_sociale"/>
Ou
<xsl:variable name="tagName" select="'aziende'"/>
<xsl:value-of select="document($XmlFile)/*[name()=$tagName]/azienda/ragione_sociale"/>
S'il vous plaît reformater votre question. Écrire des trucs comme "aidez-moi!", "Merci", etc repousseront les gens à répondre. Utilisez des phrases complètes. Décrivez l'entrée et la sortie désirées, comme "J'ai la variable x = 'ab', y = 'c', je veux z = 'abc'". Je ne peux pas faire une différence significative dans les deux derniers exemples. – phihag