选择多个元素,包括当前

时间:2017-01-04 00:48:15

标签: xslt

我的数据结构如下:

<url title="Stack Overflow">http://stackoverflow.com/</url>
<url>http://example.com/</url>

title属性是可选的。我有一个XSLT样式表,包括:

<xsl:template match="url">
    <a href="{.}"><xsl:value-of select="(@title | .)[1]"/></a>
</xsl:template>

如果有标题,我想显示标题,否则显示网址。但由于某种原因,标题永远不会显示。 (在每种情况下都会显示网址。)

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

尝试:

inspect

或:

<xsl:value-of select="(@title | text())[1]"/>

解释

表达式中的<xsl:value-of select="(@title | .)[last()]"/> 缩写表示.元素本身,它以文档顺序排列在其属性之前。