XSLT Preceding兄弟问题

时间:2018-03-08 17:03:07

标签: xml xslt xslt-1.0

我输入xml,其中有表格和注释标签。我需要显示表格标签之间的注释。笔记也可以来自不同的地方。我已经在表之前使用了应用模板,因此它在表本身之前应用了所有的注释。我需要显示节点标签,如果它进入表之间就是这样。

INPUT:

enter code here
<step>
 <note>..</note>
 <para>..</para>
 <table>
 ..
 ..
 </table>
 <note>...</note>
 <table>
   ..
   ..
 </table>
 <table>
   ..
   ..
 </table>
 <note>...</note>
 <text>...</text>
 </step>

输出

enter code here
<fc:topic>
  <fc:subTask id="S0EC0A941" lbl="E.">
  <fc:para>..</fc:para>
  <fc:text>...</fc:text>
  <fc:note>..</fc:note>
  <fc:table>
   ..
   ..
  </fc:table>
  <fc:note>...</fc:note>
  <fc:table>
   ..
   ..
   </fc:table>
   <fc:table>
   ..
   ..
  </fc:table>
  <fc:note>...</fc:note>
  </fc:subTask>
 </fc:topic>

XSLT是这样的:

<xsl:template match="step">
    <fc:topic>
        <fc:subTask>
            <xsl:if test="@id">
                <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
            </xsl:if>
            <xsl:attribute name="lbl"><xsl:number format="A."/></xsl:attribute>         
            <xsl:apply-templates select="para"/>
            <xsl:apply-templates select="text"/>
            <xsl:apply-templates select="note"/>
            <xsl:apply-templates select="table"/>               
        </fc:subTask>
    </fc:topic>
</xsl:template>

但这适用于所有表格和笔记。需要更改XSLT以显示表之间的注释,仅显示在该位置。如果笔记在桌子之后或在桌子之前,那么它应该仅在那里。如果它来到任何其他地方那么它可以在文本之后出现。

由于

0 个答案:

没有答案