2009-05-18 9 views
0

j'ai stocké dans $ surxsl comportement étrange en utilisant des variables

<xsl:variable name="onto" select="document('file.xml')"/> 

l'arbre d'un fichier Dans certains endroits où je peux utiliser cette variable espected:

<xsl:copy-of select="$onto/rdf:RDF"/> 

Mais je ne parviens pas à d'autres endroits, les caractères étranges sont écrits sur la sortie:

<xsl:element name="autor"> 
    <xsl:attribute name="rdf:resource"> 

    <xsl:text>#</xsl:text> <xsl:value-of select="$onto"/> 
    </xsl:attribute> 
</xsl:element> 

C'est le beginig de la sortie que j'ai:

<autor rdf:resource="#&#10; &#10; &#10; &#10;  &#10; &#10; &#10; &#10; &#10;  &#10; &#10; &#10; &#10; &#10;  &#10; &#10; &#10; &#10; &#10; &#10; &#10; &#10; &#10;  &#10; &#10; &#10; 

Qu'est-ce qui me manque? Qu'est-ce qui ne va pas? Si c'est trop pour un attribut, que puis-je faire? Merci

+0

Qu'y a-t-il dans le fichier fichier.xml, en plus de beaucoup de caractères de saut de ligne? Êtes-vous sûr de vouloir sélectionner tout le contenu de file.xml dans l'attribut rdf: resource de l'élément autor? – ewbi

+0

@ewbi: vous devriez ajouter cela comme réponse, parce que ça sonne comme _the_ answer. –

Répondre

0

Lorsque <xsl:value-of> est appliqué à un fragment d'arbre, il prend le contenu du texte de cet arbre. Dans votre cas, il semble que votre fichier XML ne contienne aucun texte (autre qu'un espace) qui n'est pas dans une valeur d'attribut. Je pense que vous voulez dire pour sélectionner la valeur d'un nœud d'attribut particulier dans les le document, par exemple:

<xsl:value-of select="$onto//foo/@bar"/> 

(Sans connaître la structure de votre XML et ce que vous essayez de choisir, je ne savoir ce que le vrai chemin serait.)