RE: Intersection Problem

Subject: RE: Intersection Problem
From: "Carlos Sanchez" <carlos@xxxxxxxx>
Date: Tue, 25 Jul 2000 08:38:59 -0500
My apologies for not being more explicit, a document 1 that looks as
follows:

  <statResult>
    <drilldowns>
    <drilldown>
      <drilldownType>Asset Type</drilldownType>
      <drilldownName>Equity</drilldownName>
    </drilldown>
    </drilldowns>
    <result>-1356377.20628428</result>
  </statResult>
  <statResult>
    <drilldowns>
    <drilldown>
      <drilldownType>Book Location</drilldownType>
      <drilldownName> Unspecified</drilldownName>
    </drilldown>
    </drilldowns>
    <result>-9176.92978551714</result>
  </statResult>
  <statResult>
    <drilldowns>
    <drilldown>
      <drilldownType>Book Location</drilldownType>
      <drilldownName>New York</drilldownName>
    </drilldown>
    </drilldowns>
    <result>-1356377.20628428</result>
  </statResult>
  <statResult>
    <drilldowns>
    <drilldown>
      <drilldownType>Netting Agreement</drilldownType>
      <drilldownName> Unspecified</drilldownName>
    </drilldown>
    <drilldown>
      <drilldownType>Asset Type</drilldownType>
      <drilldownName>Bond</drilldownName>
    </drilldown>
    <drilldown>
      <drilldownType>Book Location</drilldownType>
      <drilldownName> Unspecified</drilldownName>
    </drilldown>
    </drilldowns>
    <result>-8225.23157709444</result>
  </statResult>
  <statResult>
    <drilldowns>
    <drilldown>
      <drilldownType>Asset Type</drilldownType>
      <drilldownName>Bond</drilldownName>
    </drilldown>
    <drilldown>
      <drilldownType>Book Location</drilldownType>
      <drilldownName> Unspecified</drilldownName>
    </drilldown>
    </drilldowns>
    <result>-8225.23157709444</result>
  </statResult>
  <statResult>
    <drilldowns>
    <drilldown>
      <drilldownType>Netting Agreement</drilldownType>
      <drilldownName> Unspecified</drilldownName>
    </drilldown>
    <drilldown>
      <drilldownType>Asset Type</drilldownType>
      <drilldownName>Cash</drilldownName>
    </drilldown>
    <drilldown>
      <drilldownType>Book Location</drilldownType>
      <drilldownName> Unspecified</drilldownName>
    </drilldown>
    </drilldowns>
    <result>-5329.77247378227</result>
  </statResult>
  <statResult>
    <drilldowns>
    <drilldown>
      <drilldownType>Asset Type</drilldownType>
      <drilldownName>Cash</drilldownName>
    </drilldown>
    <drilldown>
      <drilldownType>Book Location</drilldownType>
      <drilldownName> Unspecified</drilldownName>
    </drilldown>
    </drilldowns>
    <result>-4657.82</result>
  </statResult>

and a document 2:

 <drilldowns>
   <drilldown>
     <drilldownType>Asset Type</drilldownType>
   </drilldown>
   <drilldown>
     <drilldownType>Book Location</drilldownType>
   </drilldown>
 </drilldowns>

I want to be able to get the result tag in document 1 for those statResult
which contain the same drilldownTypes (number and content) as in document 2.

The expected result should be:

<results>
  <result>-8225.23157709444</result>
  <result>-4657.82</result>
</results>


Thx a lot

Carlos Sanchez
The RiskMetrics Group

-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxx]On Behalf Of Kay Michael
Sent: Tuesday, July 25, 2000 5:24 AM
To: 'xsl-list@xxxxxxxxxxxxxxxx'
Subject: RE: Intersection Problem


> How I can "Intersect" document 2 with document 1 so that it brings the
> <statResult> nodes which have the equal number or more
> drilldown nodes found
> in doc 2. (The intersection key is drilldownType)

I'm not really sure what you mean by "intersect" - it would help to give an
indication of the output you expect. I suspect you mean that you want to
augment document2 by adding the drillDownName corresponding to each
drillDownType. (I'd call that a join rather than an intersection). The
obvious way to do this is to define a key:

<xsl:key name="ddt" match="DrillDown" use="DrillDownType"/>

and then process document 2 by writing:

<xsl:template match="drillDown">
   <xsl:copy-of select="DrillDownType"/>
   <xsl:variable name="ddt" select="DrillDownType"/>
   <xsl:for-each select="document('doc1')">
      <xsl:copy-of select="key('ddt', $ddt)/DrillDownName"/>
   </xsl:for-each>
</xsl:template>

Mike Kay


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread