2015-09-13 100 views
0

我试图显示章节&在某些圣经经文中找到的专有名词。与编辑HTML文件相比,这将大大节省我的时间。这就是为什么我首先开始使用XML的原因。XSLT - 每个子节点(不同节点大小)的循环

我已经到了它正在循环每次出现的正确次数的地步,但我无法正确地列出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()& verse_path()数组中。

我想使用XSLT而不是仅仅使用JavaScript。 有什么建议吗?

回答

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> 
+0

我得到了解析错误,甚至将其调整到什么,我想会的工作后。如果我们能够实现这个目标,我会非常开心。谢谢,不过。 –

+0

它与您发布的代码一起工作(关闭打开的标签后) - 请参阅:http://xsltransform.net/94hvTAn –

相关问题