Hi,
Here's my xml and xsl
<?xml version="1.0" encoding="UTF-8"?>
<sections id="001" title="Title">
<section>
<item id="9191" title="JN0009">
<itemmetadata>
<qtimetadata>
<qtimetadatafield>
<fieldlabel>item_type_code</fieldlabel>
<fieldentry>PA</fieldentry>
</qtimetadatafield>
<qtimetadatafield>
<fieldlabel>item_type_description</fieldlabel>
<fieldentry>PAA</fieldentry>
</qtimetadatafield>
</qtimetadata>
</itemmetadata>
</item>
<item id="3280547">
<itemmetadata>
<qtimetadata>
<qtimetadatafield>
<fieldlabel>item_type_code</fieldlabel>
<fieldentry>OE</fieldentry>
</qtimetadatafield>
<qtimetadatafield>
<fieldlabel>item_type_desc</fieldlabel>
<fieldentry>OEE</fieldentry>
</qtimetadatafield>
</qtimetadata>
</itemmetadata>
</item>
</section>
<section>
<item id="11114" title="JNST0322">
<itemmetadata>
<qtimetadata>
<qtimetadatafield>
<fieldlabel>item_type_code</fieldlabel>
<fieldentry>PA</fieldentry>
</qtimetadatafield>
<qtimetadatafield>
<fieldlabel>item_type_description</fieldlabel>
<fieldentry>PAA</fieldentry>
</qtimetadatafield>
</qtimetadata>
</itemmetadata>
</item>
<item id="3331945">
<itemmetadata>
<qtimetadata>
<qtimetadatafield>
<fieldlabel>item_type_code</fieldlabel>
<fieldentry>MC</fieldentry>
</qtimetadatafield>
<qtimetadatafield>
<fieldlabel>item_type_description</fieldlabel>
<fieldentry>MMC</fieldentry>
</qtimetadatafield>
</qtimetadata>
</itemmetadata>
</item>
</section>
<section>
<item id="11114" title="JNST0322">
<itemmetadata>
<qtimetadata>
<qtimetadatafield>
<fieldlabel>item_type_code</fieldlabel>
<fieldentry>PA</fieldentry>
</qtimetadatafield>
<qtimetadatafield>
<fieldlabel>item_type_description</fieldlabel>
<fieldentry>PAA</fieldentry>
</qtimetadatafield>
</qtimetadata>
</itemmetadata>
</item>
<item id="11291" title=".JN0321">
<itemmetadata>
<qtimetadata>
<qtimetadatafield>
<fieldlabel>item_type_code</fieldlabel>
<fieldentry>PA</fieldentry>
</qtimetadatafield>
<qtimetadatafield>
<fieldlabel>item_type_desc</fieldlabel>
<fieldentry>PAA</fieldentry>
</qtimetadatafield>
</qtimetadata>
</itemmetadata>
</item>
<item id="9191" title="JN0009">
<itemmetadata>
<qtimetadata>
<qtimetadatafield>
<fieldlabel>item_type_code</fieldlabel>
<fieldentry>PA</fieldentry>
</qtimetadatafield>
<qtimetadatafield>
<fieldlabel>item_type_description</fieldlabel>
<fieldentry>PAA</fieldentry>
</qtimetadatafield>
</qtimetadata>
</itemmetadata>
</item>
<item id="3280585">
<itemmetadata>
<qtimetadata>
<qtimetadatafield>
<fieldlabel>passage_id_ref</fieldlabel>
<fieldentry>11291</fieldentry>
</qtimetadatafield>
<qtimetadatafield>
<fieldlabel>item_type_code</fieldlabel>
<fieldentry>OE</fieldentry>
</qtimetadatafield>
<qtimetadatafield>
<fieldlabel>item_type_desc</fieldlabel>
<fieldentry>OEE</fieldentry>
</qtimetadatafield>
</qtimetadata>
</itemmetadata>
</item>
</section>
</sections>
-----------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xml:space="default">
<xsl:template match="/">
<xsl:apply-templates select="//item"
mode="passage"/>
</xsl:template>
<xsl:template match="item" mode="passage">
<xsl:if
test="descendant::qtimetadatafield/fieldentry[preceding-sibling::node()[text()='item_type_code']]/text()='OE'">
1. Found OE item
<xsl:for-each select="preceding-sibling::item[(_at_)title
!='']">
2. Found a Passage item that relate to OE item.
<xsl:variable name="pass_id" select="@id"/>
<xsl:if test="not(preceding-sibling::item/@id =
$pass_id)">
3. Print pa_id= <xsl:value-of select="@id"/><br></br>
</xsl:if>
</xsl:for-each>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
The way I tried on my xsl not work correctly, I'm
asking for help on grouping solution ( I can't get it
work). thank you in advance!
I want the first level group to group the <section>
element base on the value of the fieldentry for the
item_type_desc in the item that has a item_type_code
of OE. (this allow me to have two <section> with all
it's items including item that has a item_type_code of
OE) . Then base on first level group to group <item>
element base on the unique value of it's @id ( this
allow me to get rid of the duplicate item that has a
item_type_code of PA)
The output that I want is able to get unique item of
@id that is relate to the item has a item_type_code of
OE.
In my xml source, I have 3 <section> elements, after
first level group, I should have 2 <section> elements
that contain all <item> elements (has duplicated item
in both <section> for example item @id=9191). after
second group it should let me to get following (get
rid of duplicated item @id 9191)
item @id of 9191
item @id of 11114
item @id of 11291
Thank you very much for the help
Fanyin
__________________________________
Do you Yahoo!?
Check out the new Yahoo! Front Page.
www.yahoo.com