选择 parent 的前一个兄弟姐妹的 ID
Selecting ID of parent's preceding sibling
我对 XSLT 比较陌生,发现 preceding-sibling:: 非常痛苦。
使用一个非常简单的例子XML:
<month>
<day id="1">Day one was a lovely day</day>
<day id="2">Day two was balls</day>
<day id="3">Day three was Wednesday</day>
</month>
和一些基本的 XSLT(我希望每天输出到一个新文件:这没问题):
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/month">
<xsl:for-each select="day">
<xsl:result-document href="output/day-{@id}/index.html">
<xsl:call-template name="page" />
</xsl:result-document>
</xsl:for-each>
</xsl:template>
<xsl:template name="page">
<html>
<head>
<title>This is <xsl:value-of select="id" /></title>
</head>
<body>
<h1>Day of new <xsl:value-of select="@id" /></h1>
<p><xsl:value-of select="." /></p>
<!--PROBLEM HERE:: -->
Previous: <xsl:value-of select="" />
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我遇到的问题是最后一点(我在这里写了问题)。我正在尝试获取前一天的 ID。我似乎无法获得正确的 select
值。我已经尝试了 ancestor::
和 ../preceding-sibling::day[1]
的所有组合,我可以在任何地方找到提到的。请帮忙!
使用以下内容:
<xsl:value-of select="preceding-sibling::day[1]/@id"/>
只是第一个没有任何价值,因为没有前面的兄弟 day
。
我对 XSLT 比较陌生,发现 preceding-sibling:: 非常痛苦。
使用一个非常简单的例子XML:
<month>
<day id="1">Day one was a lovely day</day>
<day id="2">Day two was balls</day>
<day id="3">Day three was Wednesday</day>
</month>
和一些基本的 XSLT(我希望每天输出到一个新文件:这没问题):
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/month">
<xsl:for-each select="day">
<xsl:result-document href="output/day-{@id}/index.html">
<xsl:call-template name="page" />
</xsl:result-document>
</xsl:for-each>
</xsl:template>
<xsl:template name="page">
<html>
<head>
<title>This is <xsl:value-of select="id" /></title>
</head>
<body>
<h1>Day of new <xsl:value-of select="@id" /></h1>
<p><xsl:value-of select="." /></p>
<!--PROBLEM HERE:: -->
Previous: <xsl:value-of select="" />
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我遇到的问题是最后一点(我在这里写了问题)。我正在尝试获取前一天的 ID。我似乎无法获得正确的 select
值。我已经尝试了 ancestor::
和 ../preceding-sibling::day[1]
的所有组合,我可以在任何地方找到提到的。请帮忙!
使用以下内容:
<xsl:value-of select="preceding-sibling::day[1]/@id"/>
只是第一个没有任何价值,因为没有前面的兄弟 day
。