[xsl] Select previous sibling where attribute is not empty

Subject: [xsl] Select previous sibling where attribute is not empty
From: Mathieu Malaterre <mathieu.malaterre@xxxxxxxxx>
Date: Tue, 13 Apr 2010 17:03:19 +0200
Hi there,

  I am trying to select preceding-sibling::row[1] or
preceding-sibling::row[2] in the following example. Of course '1' or
'2' are hardcoded, and instead I need to express instead " where
entry/@morerows != '' "

Here is my Input.xml:

   <informaltable frame="all">
      <tgroup cols="3.782608695652174"><tbody><row>
            <entry morerows="2">
               <para>Study</para>
            </entry>
            <entry>
               <para>General Study</para>
            </entry>
            <entry>
               <para>C.7.2.1</para>
            </entry>
            <entry>
               <para>M</para>
            </entry>
         </row>
         <row>
            <entry>
               <para>Patient Study </para>
            </entry>
            <entry>
               <para>C.7.2.2</para>
            </entry>
            <entry>
               <para>U</para>
            </entry>
         </row>
         <row>
            <entry>
               <para>Clinical Trial Study</para>
            </entry>
            <entry>
               <para>C.7.2.3</para>
            </entry>
            <entry>
               <para>U</para>
            </entry>
         </row></tbody></tgroup>
   </informaltable>


My current xsl script is:

  <xsl:template match="row">
    <xsl:message>
    <xsl:if test="count(entry) = 3">
      <xsl:value-of select="preceding-sibling::row[entry/@morerows != '' ]"/>
    </xsl:if>
    </xsl:message>
  </xsl:template>


Thanks for suggestions,
-- 
Mathieu

Current Thread