7
votes

Comment puis-je envoyer un nœud (tout) à une fonction XSL: fonctionner?

Puis-je envoyer un nœud à une fonction XSLT? Par exemple: xxx

puis-je envoyer l'élément sur une fonction - dans cette fonction, je souhaite traiter les nœuds sous Livre ( , ou )

puis-je créer une fonction xsl: fonction ci-dessous? < Pré> xxx

On dirait que j'ai créé beaucoup de confusion à chacun en disant une fonction au lieu de XSL: Fonction ----: (


4 commentaires

Demandez-vous que les gens écrivent un code réel pour vous? Cela ne fonctionnera pas très bien, j'ai peur ...


Compte tenu du libellé de la question ("fonction", etc.) et désir de simplement traiter le nœud, je pense que @known est assez nouveau à XSLT. Et certains échantillons de code utilisant des livres / livres peuvent aider, en particulier pour d'autres débutants XSLT, trouvant cette question dans une recherche.


Je cherche une fonction XSLT, qui accepte un nœud (fondamentalement, tout nœud, il peut être) en tant que paramètre de la fonction XSLT? Si oui puis-je avoir la syntaxe de la fonction XSLT?


Pourquoi avez-vous collé votre question initiale comme un commentaire dans chaque réponse?


5 Réponses :


0
votes

XSL ne se soucie pas de ce que le paramètre est. Cela traite vraiment tout comme xml. Si le texte est transmis, il est traité comme un nœud texte.

Voici un exemple avec un lien pour une référence supplémentaire.

http://www.w3schools.com/xsl/ xxx


1 commentaires

Je cherche une fonction XSLT, qui accepte un nœud (fondamentalement, tout nœud, il peut être) en tant que paramètre de la fonction XSLT? Si oui puis-je avoir la syntaxe de la fonction XSLT?



-1
votes

à ajouter au CHAOSPANDION Réponse Vous devrez peut-être ajouter un Test de nœud à votre requête XPath:

<xsl:call-template name="TemplateName">
    <xsl:with-param name="ParamName" select="MyNode/MyNode/node()" />
</xsl:call-template>

<xsl:template name="TemplateName">
    <xsl:param name="ParamName" />
</xsl:template>


4 commentaires

Je ne sais pas ce que cela est censé vouloir dire, mais votre XPath est sémantiquement différent de la réponse d'une chaospandion.


Vous ne soyez pas clair dans ma question, puis-je avoir une fonction qui accepte le noeud comme paramètre? Si oui, puis-je avoir une syntaxe de code d'exemple?


Pavel, je suis conscient que .innerxml est différent de .Orterxml --- et que / myNode / noeud / noeud () est différent de / mynode.


Je cherche une fonction XSLT, qui accepte un nœud (fondamentalement, tout nœud, il peut être) en tant que paramètre de la fonction XSLT? Si oui puis-je avoir la syntaxe de la fonction XSLT?



-1
votes

Dans votre question:

Puis-je envoyer l'élément à une fonction - dans cette fonction, je souhaite traiter les nœuds sous Livre (, ou ) p> blockQuote>

et une autre commentaire: p>

Puis-je avoir une fonction qui accepte le nœud comme paramètre? p> BlockQuote>

... Vous demandez une fonction, mais que je pense que vous voulez, c'est un modèle code> pour le livre book code> élément strong>. p>

Bien sûr, vous pouvez le faire plusieurs façons - dans un pour chacun code> boucle , en réalité, envoyez le nœud code> book code> dans un modèle en utilisant avec-param code> , etc .-- mais un simple Modèle code> devrait accomplir ce dont vous avez besoin. Quel que soit le modèle correspondant au "paramètre". P>

<xsl:template match="book">
    author: <xsl:value-of select="author" />
    price: <xsl:value-of select="price" />
    <xsl:apply-templates select="year" />
</xsl:template>

<xsl:template match="year">
   <xsl:choose>
      <xsl:when test="year &lt; '2000'">
         from a prior century: <xsl:value-of select="." />
      </xsl:when>
      <xsl:otherwise>
         from this century: <xsl:value-of select="." />
      </xsl:otherwise>
   </xsl:choose>
</xsl:template>


1 commentaires

Je cherche une fonction XSLT, qui accepte un nœud (fondamentalement, tout nœud, il peut être) en tant que paramètre de la fonction XSLT? Si oui puis-je avoir la syntaxe de la fonction XSLT?



1
votes

Il y a beaucoup de fonctions XSLT qui acceptent les nœuds comme paramètres. Par exemple, tous les arguments de concat peuvent être des nœuds, par exemple: xxx

pendant que cela répond précisément la question que vous avez posée, je pariéais de plier de l'argent que ce n'est pas la question que vous vouliez répondre. Mais Heck, vous l'avez posé quatre fois, alors vous allez ici.

edit

réellement, les attributs ne sont pas des nœuds; Seuls les éléments, le texte, les commentaires, les instructions de traitement et les sections CDATA sont des nœuds. Mais l'exemple ci-dessus répond toujours à la question correctement.


0 commentaires

8
votes

Je pense que la réponse à votre question est, oui. Vous peut Envoyer un noeud à une fonction XSLT.

Si vous vous demandez quoi utiliser pour la valeur de l'attribut AS = "", vous avez plusieurs choix. Si vous voulez être très lax et accepter à peu près n'importe quoi, utilisez AS = "Item () *" .

du site de David Pawson : < / p>

élément () * .. Sorte de Nodet? W3C

Oui, je suis d'accord c'est joli Sans signification ne le fait pas. Pourtant. À propos de Cr, c'est assez essentiel, surtout Si vous souhaitez utiliser des types. Et vouloir Générez, disons, un ndeset .. désolé séquence, dans une variable. xxx

Cela crée une variable que vous pouvez pirater en utilisant xpath tout à fait facilement. C'est à dire. N'oubliez pas l'élément () *.

Types ... Quelques exemples. W3C

d'un email explicatif de Mike Kay, merci Mike. Exemples:

La valeur de paramètre peut être n'importe quel article (c'est-à-dire un nœud ou une valeur atomique). Mais ça doit être un seul élément.

Le paramètre peut être un seul élément ou une séquence vide

Le paramètre doit être une séquence de un ou plusieurs articles - une séquence vide n'est pas autorisé

Le paramètre peut être une séquence de zéro ou plus d'articles - cette place non contraintes sur sa valeur.

Le paramètre peut être une séquence de zéro ou plus nœuds

Le paramètre peut être une séquence de Valeurs zéro ou plus atomique (par exemple entiers, cordes ou booléens).

élément () * est le type le plus général possible, il correspond à tout, comme "Objet" en Java. Pour cette raison, il peut généralement être omis. Mais non toujours, par exemple le type par défaut en XSL: la variable n'est pas un élément () * mais noeud de document (), pour s'assurer que

chose

continue de se comporter comme XSLT 1.0

Utilisez-les pour spécifier des paramètres, types variables, etc.


0 commentaires