XSLT样式表循环

时间:2015-05-15 16:31:56

标签: xml xslt

我在这里做错了什么?

<xsl:for-each select="JournalData/PatientData/CasebookMemo">

<tr bgcolor="#FBF5A4">
<th>CasebookMemo</th> 
</tr>
<tr>
<td><xsl:value-of select="local-name()" /></td>
<td><xsl:value-of select="ID" /></td>
</tr>


</xsl:for-each>
<xsl:for-each select="JournalData/PatientData/CasebookMemo/CreatedBy">

<tr bgcolor="#FBF5A4">
<th>CreatedBy</th> 
</tr>
<xsl:for-each select="*">
<tr>
<td><xsl:value-of select="local-name()" /></td>
<td><xsl:value-of select="." /></td>


</tr>


</xsl:for-each>
</xsl:for-each>

我得到......

CasebookMemo CasebookMemo 的 CasebookMemo CasebookMemo 的 CasebookMemo CasebookMemo 的 CasebookMemo CasebookMemo 的 CasebookMemo CasebookMemo 的 CreatedBy 由...制作 的 CreatedBy 由...制作 的 CreatedBy 由...制作 的 CreatedBy 由...制作 的 CreatedBy 由...制作 的 CreatedBy CreatedBy

....但我需要的是一个看起来像这样的循环:

CasebookMemo CasebookMemo 的 CreatedBy 由...制作 的 CasebookMemo CasebookMemo 的 CreatedBy 由...制作 的 CasebookMemo CasebookMemo 的 CreatedBy CreatedBy

等等....因为我循环遍历一个XML,其中CasebookMemo后跟CreatedBy,然后是CasebookMemo和CreatedBy的新实例....依此类推......

非常感谢您的任何帮助:)

/保

感谢您的帮助!我让它通过这个问题只是为了遇到另一个问题。

这是我目前的样式表:

<xsl:for-each select="JournalData/PatientData/CasebookMemo/ID">
<tr bgcolor="#FBF5A4">
<th>CasebookMemo</th> 
</tr>
<tr>
<td><xsl:value-of select="local-name()" /></td>
<td><xsl:value-of select="." /></td>
</tr>
<xsl:for-each select="../CreatedBy">
<tr bgcolor="#FBF5A4">
<th>CreatedBy</th> 
</tr>
<xsl:for-each select="*">
<tr>
<td><xsl:value-of select="local-name()" /></td>
<td><xsl:value-of select="." /></td>
</tr>
</xsl:for-each>
<xsl:for-each select="../../OwnedBy">   
<tr bgcolor="#FBF5A4">
<th>OwnedBy</th> 
</tr>
<tr>
<td><xsl:value-of select="local-name()" /></td>
<td><xsl:value-of select="." /></td>
</tr>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>

....这就是结果:

enter image description here

“OwnedBy”下的所有元素发生了什么(实际上与CreatedBy相同)?他们为什么不可见?在每个“CreatedBy”部分之后,应该有一个“OwnedBy”部分。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:-1)

我进行了3次更改以使其正常工作:

  1. <xsl:for-each select="../../OwnedBy">已更改为<xsl:for-each select="../OwnedBy">

  2. <tr bgcolor="#FBF5A4"> <th>OwnedBy</th> </tr>之后 添加了一行:<xsl:for-each select="*">

  3. 该声明已被</xsl:for-each>
  4. 关闭