xsl:key

Subject: xsl:key
From: Rhonda Fischer <rhonda@xxxxxxxxxxxxxx>
Date: Wed, 21 Jun 2000 09:28:43 +0000
Hello,

I would like to extract all paragraphs that have an attribute
of doc equal to contract. Instead I only receive the following
output and I was hoping to understand why?

<Template><Destination>
</Destination></Template>

Thank you very much
Rhonda



temp.xml
-------
<!DOCTYPE ProjectPlan [
    <!ELEMENT Template (Destination+)>
    <!ELEMENT Destination (Target+)>
     <!ELEMENT Target (Content+)>
        <!ATTLIST Target
              doc (contract | advice | plan) #REQUIRED
          >
    <!ELEMENT Content (#PCDATA)>
]>

<Template>
 <Destination>
  <Target doc="contract"/>
     <Para>CONTRACT para destined for output to contract.xml</Para>
 </Destination>
</Template>
.... other para's all with different doc value according to DTD


transform.xsl
----------

<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet
          xmlns:xsl="http://ww.w3.org/1999/XSL/Transform";
          version="1.0">

<xsl:key name="blueprint" match="Target" use="@doc"/>

<xsl:output method="xml"/>
<xsl:param name='contractType'>contract</xsl:param>

<xsl:template match="/">
    <xsl:apply-templates select='/Template'/>
</xsl:template>

<xsl:template match="Template">
  <xsl:element name="{name()}">
     <xsl:copy-of select="attribute::node()"/>
     <xsl:apply-templates/>
  </xsl:element>
</xsl:template>

<xsl:template match="Destination">
  <xsl:element name="{name()}">
    <xsl:copy-of select="key('blueprint', '$contractType')"/>
  </xsl:element>
</xsl:template>

</xsl:stylesheet>


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


Current Thread