xsl使用变量的奇怪行为

时间:2009-05-18 23:40:30

标签: xslt variables attributes

我已将文件的树存储到$ onto

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

在某些地方,我可以使用这个变量:

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

但我在其他地方遇到麻烦,输出上写着奇怪的字符:

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

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

这是我得到的输出的开始:

<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; 

我缺少什么?怎么了?  如果属性很重要,我该怎么办? 谢谢

1 个答案:

答案 0 :(得分:0)

<xsl:value-of>应用于树片段时,它会获取该树的文本内容。在您的情况下,您的XML文件看起来不包含任何不在属性值中的文本(除了空白)。我怀疑你的意思是选择文档中特定属性节点的值,例如:

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

(如果不知道XML的结构以及您要选择的内容,我不知道真正的路径是什么。)