2010-11-19 3 views
0

Je rencontre un problème avec un code XSLT avec lequel je travaille pour un client. Je ne peux pas changer le schéma, car une application flash en dépend et faire des changements casserait le code ActionScript. C'est regrettable.Première chaîne de sortie, pas toutes les chaînes enfants

Ceci est ma première incursion dans XSLT et je suis certainement incompétent avec elle, alors j'espérais que la communauté pourrait m'aider.

C'est le schéma (fichier XML):

<statement title="Click on your Answer" answer="true"> 
    True or False: The question asked is here. 
     <feedback> 
     <answerTrue sound=""> 
      The response if the user answered true is here. 
     </answerTrue> 
     <answerFalse sound=""> 
      The response if the user answered false is here 
     </answerFalse> 
     </feedback> 
</statement> 

Lorsque je tente d'accéder à la "déclaration" comme celui-ci (XSLT):

<div id="statement"> 
<xsl:value-of select="statement" /> 
</div> 

Il affiche le "answerTrue" et " answerFalse "nœuds avec elle. Je voudrais seulement afficher le texte "Vrai ou Faux: Le ques ...". Si quelqu'un connaît une balise que je peux utiliser pour afficher la déclaration sans afficher les éléments enfants, je serais éternellement reconnaissant! Merci!

+0

Kinda confus ici. Les fragments XSL que vous avez publiés sont différents et le second semble être ce que vous voulez faire. Quel est le problème à nouveau? De quelle étiquette parlez-vous - HTML ou XSL? Qu'est-ce qu'il est censé faire exactement? – Oded

+0

Ah, je suis désolé. Je peux voir à quel point c'est confus. Je vais mettre à jour la question. –

Répondre

2

Utilisation:

normalize-space(/statement/text()[1]) 
+0

À quoi sert le [1]? –

+0

'[1]' est l'abréviation de '[position() = 1]'. '/ statement/text() [1]' signifie: sélectionner le premier enfant de l'élément 'statement' qui est l'élément supérieur du document. –

Questions connexes