[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Filtering duplicated data problem

Subject: Filtering duplicated data problem
From: Fanyin Wang <fanyinxslt@xxxxxxxxx>
Date: Wed, 3 Nov 2004 10:24:42 -0800 (PST)
duplicated data
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[@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 

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.