xsl-list
[Top] [All Lists]

RE: xpath problem

2005-06-14 06:26:14

hi ever one

from the fllowing xml fragment
<AA>
<BB>
<category cat_id="1">one</category>
<category cat_id="2">one</category>
<category cat_id="3">two</category>
<category cat_id="4">three</category>
<BB>
<CC>
<sb-category  id="1"  category="1">one</category>
<sb-category  id="2"  category="1">one</category>
<sb-category  id="3"  category="1">two</category>
<sb-category  id="4"  category="3">three</category>
<CC>
<AA>


i am trying to output all sub-category  within <CC> 
corspondes to a particuler category within <BB>

my last attempet to achive the desired result was the 
following but is wrong

can any one please help

Your XML sample isn't well-formed, it should really be:

<AA>
        <BB>
                <category cat_id="1">one</category>
                <category cat_id="2">one</category>
                <category cat_id="3">two</category>
                <category cat_id="4">three</category>
        </BB>
        <CC>
                <sb-category  id="1"  category="1">one</sb-category>
                <sb-category  id="2"  category="1">one</sb-category>
                <sb-category  id="3"  category="1">two</sb-category>
                <sb-category  id="4"  category="3">three</sb-category>
        </CC>
</AA>

To access <CC>/<sb-category> from within <BB>/<category> you could use:

<xsl:template match="category">
  <xsl:apply-templates select="//sb-category[(_at_)category =
current()/@cat_id]"/>

This will match any sb-category in the whole document (// means
descentant-or-self from the root).

To make the xpath more specific, you could use:

  <xsl:apply-templates
select="parent::BB/following-sibling::CC/sb-category[(_at_)category =
current()/@cat_id]"/>

Cheers
andrew
        

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>