Re: [xsl] Navigating an XML file with xsl:for-each etc.

Subject: Re: [xsl] Navigating an XML file with xsl:for-each etc.
From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
Date: Fri, 26 Aug 2005 21:10:58 +0530
Hi Houman,
  Something like

<xsl:for-each select="//*[action='change']">
  <xsl:if test="add and delete">
     <xsl:if test="add/c = delete/c">
        ...
     </xsl:if>
      <xsl:if test="add/d = delete/d">
        ...
      </xsl:if>
  </xsl:if>
</xsl:for-each>

(this is not tested)

Regards,
Mukul

On 8/26/05, Khorasani, Houman <houman_khorasani@xxxxxxxxxxxxxx> wrote:
> Hello everyone,
>
> I have checked the FAQ but couldn't find any solution to this:
>
> I have an XML file like this:
>
> <a>
> </a>
> <b action='change'>
>        <add>
>                <c>bla</c>
>                <d>bla</d>
>        </add>
>        <delete>
>                <c>bla</c>
>                <d>bla</d>
>        <delete>
> </b>
> <e>
> </e>
>
>
> I have to check for each attribute called 'change'
>        Then look if it has an <add> tag and an <delete> tag
>                - Compare the sub element of <add> called <c> with the
> sub                     element of <delete> called <c> and see if the
> value is equal.
>                - The same with sub element <d>
>
>
> I guess the best to do that is to use a for-each to check all the
> attributes with the value 'change' (This is not working in my example
> below though)
> 1) How do I use for-each with attributes? Like this?
>
> <xsl:for-each select="//[action='change']">
>                <xsl:if test=".='add'">
>                        ...
>                </xsl:if>
>                ...
> </xsl:for-each>
>
> 2) How do I compare in the most efficient way the two sub-elements <c>
> and <d> against each other?
>
>
> Many thanks for any idea,
> Houman

Current Thread