我试图展示章节&在某些圣经经文中找到的专有名词的入口。与编辑HTML文件相比,这将大大节省我的时间。这就是我开始使用XML的原因。
我已经到了每次出现循环正确次数的程度,但是我无法正确地列出XML数据。
对于pn_book / pn_chptr / token_occurrence的DOM元素,我有诗歌和音符的元素。 verse_path用于创建指向相应网页文件的链接。
这是一个章节数据文件的示例&用于呈现页面的XSLT代码:
<pn_book>
<pn_chptr>
<bookname>2 John </bookname>
<chptr>1</chptr>
<token_occurrence>
<pn_token>Christ</pn_token>
<verse_path>2JO1.HTM#3</verse_path>
<verse>3</verse>
<verse_path>2JO1.HTM#7</verse_path>
<verse>7</verse>
<verse_path>2JO1.HTM#9</verse_path>
<verse>9</verse>
</token_occurrence>
<xsl:for-each select="pn_book/pn_chptr">
<h2><xsl:value-of select="bookname"/> Chapter <xsl:value-of select="chptr"/></h2>
<xsl:for-each select="token_occurrence">
<xsl:value-of select="pn_token" /> - <xsl:value-of select="../bookname"/>
<xsl:for-each select="verse">
<a href="{verse_path}"><xsl:value-of select="../../chptr" />:<xsl:value-of select="../verse" /></a>;
</xsl:for-each><br />
</xsl:for-each>
</xsl:for-each>
结果仅显示第一个条目而不是每个条目。 我想我需要某种计数器来在verse()&amp;中显示正确的数组元素。 verse_path()数组。
我试图使用XSLT而不仅仅是JavaScript。 有什么建议吗?
答案 0 :(得分:0)
以这种方式试试吗?
...
<xsl:for-each select="verse">
<a href="{preceding-sibling::verse_path[1]}"><xsl:value-of select="../../chptr" />:<xsl:value-of select="." /></a>;
</xsl:for-each>
...
或者可能更有效率:
<xsl:template match="pn_book">
<xsl:for-each select="pn_chptr">
<xsl:variable name="bookname" select="bookname" />
<xsl:variable name="chptr" select="chptr" />
<h2><xsl:value-of select="$bookname"/> Chapter <xsl:value-of select="$chptr"/></h2>
<xsl:for-each select="token_occurrence">
<xsl:value-of select="pn_token" /> - <xsl:value-of select="$bookname"/>
<xsl:for-each select="verse">
<a href="{preceding-sibling::verse_path[1]}"><xsl:value-of select="$chptr" />:<xsl:value-of select="." /></a>;
</xsl:for-each>
<br/>
</xsl:for-each>
</xsl:for-each>
</xsl:template>